国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

濟(jì)南快速建站模板網(wǎng)站結(jié)構(gòu)優(yōu)化的內(nèi)容和方法

濟(jì)南快速建站模板,網(wǎng)站結(jié)構(gòu)優(yōu)化的內(nèi)容和方法,引航博景做的網(wǎng)站,人人車的網(wǎng)站找誰做的tcpdump是一款經(jīng)典的抓包工具,即使今天我們已經(jīng)有了像Wireshark這樣更易于使用和掌握的抓包工具,tcpdump仍是網(wǎng)絡(luò)程序員的必備利器。 tcpdump提供了一些選項(xiàng)用以過濾數(shù)據(jù)包或定制輸出格式,常見的選項(xiàng)如下: 1.-n:使用I…

tcpdump是一款經(jīng)典的抓包工具,即使今天我們已經(jīng)有了像Wireshark這樣更易于使用和掌握的抓包工具,tcpdump仍是網(wǎng)絡(luò)程序員的必備利器。

tcpdump提供了一些選項(xiàng)用以過濾數(shù)據(jù)包或定制輸出格式,常見的選項(xiàng)如下:
1.-n:使用IP地址表示主機(jī),而非主機(jī)名;使用數(shù)字表示端口號(hào),而非服務(wù)名。

2.-i:指定要監(jiān)聽的網(wǎng)卡接口。-i any表示抓取所有網(wǎng)卡接口上的數(shù)據(jù)包。

3.-v:輸出更詳細(xì)的信息,如顯式IP數(shù)據(jù)包中的TTL和TOS信息。

4.-t:不打印時(shí)間戳。

5.-e:顯示以太網(wǎng)幀頭部信息。

6.-c:僅抓取指定數(shù)量的數(shù)據(jù)包。

7.-x:以十六進(jìn)制數(shù)顯示數(shù)據(jù)包的內(nèi)容,但不顯示包中以太網(wǎng)幀的頭部信息。

8.-X:與7類似,但還打印每個(gè)十六進(jìn)制字節(jié)對應(yīng)的ASCII字符。

9.-XX:與8類型,但還打印以太網(wǎng)幀的頭部信息。

10.-s:設(shè)置抓包時(shí)的抓取長度,當(dāng)數(shù)據(jù)包的長度超過抓取長度時(shí),tcpdump抓取到的是被截?cái)嗟臄?shù)據(jù)包。在4.0及之前的版本中,默認(rèn)的抓包長度是68字節(jié),這對于IP、TCP、UDP等協(xié)議時(shí)足夠的,但對于DNS、NFS等協(xié)議,68字節(jié)通常不能容納一個(gè)完整的數(shù)據(jù)包。4.0版本后,默認(rèn)的抓包長度被修改為65535字節(jié)。

11.-S:以絕對值來顯示TCP報(bào)文段的需要,而非相對值。

12.-w:將tcpdump的輸出以某種格式定向到某個(gè)文件。

13.-r:從文件讀取數(shù)據(jù)包信息并顯示之。

除了使用選項(xiàng)外,tcpdump還支持用表達(dá)式進(jìn)一步過濾數(shù)據(jù)包,tcpdump表示式的操作數(shù)分為3種:
1.類型:解釋其后面跟著的參數(shù)的含義,其可選值包括host、net、port、portrange,它們分別指定主機(jī)名(或IP地址)、用CIDR方法表示的網(wǎng)絡(luò)地址、端口號(hào)、端口范圍。如要抓取整個(gè)1.2.3.0/255.255.255.0網(wǎng)絡(luò)上的數(shù)據(jù)包,可用以下命令:
在這里插入圖片描述
2.方向:其可選值為src(指定數(shù)據(jù)包的發(fā)送端)、dst(指定數(shù)據(jù)包的目的端)。如要抓取進(jìn)入端口13579的數(shù)據(jù)包,可用以下命令:
在這里插入圖片描述
3.協(xié)議:指定目標(biāo)協(xié)議,如要抓取所有ICMP數(shù)據(jù)包,可用以下命令:
在這里插入圖片描述
我們還可使用邏輯操作符來組織上述操作數(shù)以創(chuàng)建更復(fù)雜的表達(dá)式,tcpdump支持的邏輯操作符和編程語言中的邏輯操作符完全相同,包括and(&&)、or(||)、not(!)。如要抓取主機(jī)ernest-laptop和所有非Kongming20的主機(jī)之間交換的IP數(shù)據(jù)包,可用以下命令:
在這里插入圖片描述
如果表達(dá)式比較復(fù)雜,我們可以用括號(hào)將它們分組,但在使用括號(hào)時(shí),我們要么用反斜杠\對它轉(zhuǎn)義,要么使用單引號(hào)'將其括住,以避免它被shell所解釋。如要抓取來自主機(jī)10.0.2.4,目標(biāo)端口是3389或22的數(shù)據(jù)包,可使用如下命令:
在這里插入圖片描述
tcpdump還允許直接使用數(shù)據(jù)包中的部分協(xié)議字段的內(nèi)容來過濾數(shù)據(jù)包,如僅抓取TCP同步報(bào)文段,可使用如下命令:
在這里插入圖片描述
這是因?yàn)門CP頭部的第14個(gè)字節(jié)的第2個(gè)位是同步標(biāo)志,該命令也可表示為:
在這里插入圖片描述
tcpdump的具體輸出格式除了與選項(xiàng)有關(guān)外,還與協(xié)議有關(guān),具體可參考tcpdump的man手冊。

lsof(list open file)命令是一個(gè)列出當(dāng)前系統(tǒng)打開的文件描述符的工具,通過它我們可以了解感興趣的進(jìn)程打開了哪些文件描述符,或者我們感興趣的文件描述符被哪些進(jìn)程打開了。

lsof命令常用的選項(xiàng):
1.-i:顯示socket文件描述符,該選項(xiàng)的使用方法是:
在這里插入圖片描述
其中,4表示IPv4協(xié)議,6表示IPv6協(xié)議;protocol指定傳輸層協(xié)議,可以是TCP或UDP;hostname指定主機(jī)名;ipaddr指定主機(jī)的IP地址;service指定服務(wù)名;port指定端口號(hào)。如要顯示所有連接到主機(jī)192.168.1.108的ssh服務(wù)的socket文件描述符,可用以下命令:
在這里插入圖片描述
如果-i后不跟任何參數(shù),則lsof命令將顯示所有socket文件描述符。

2.-u:顯示指定用戶啟動(dòng)的所有進(jìn)程打開的所有文件描述符。

3.-c:顯示指定的命令打開的所有文件描述符,比如要查看websrv程序打開了哪些文件描述符,可用以下命令:
在這里插入圖片描述
4.-p:顯示指定進(jìn)程打開的所有文件描述符。

5.-t:僅顯示打開了目標(biāo)文件描述符的進(jìn)程的PID。

我們還可直接將文件名作為lsof命令的參數(shù),以查看哪些進(jìn)程打開了該文件。

查看websrv服務(wù)器打開了哪些文件描述符:
在這里插入圖片描述
lsof命令的每行輸出內(nèi)容包含以下字段:
1.COMMAND:執(zhí)行程序所使用的終端命令。默認(rèn)僅顯示前9個(gè)字符。

2.PID:文件描述符所屬進(jìn)程的PID。

3.USER:擁有該文件描述符的用戶的用戶名。

4.FD:文件描述符的描述。其中cwd表示進(jìn)程的工作目錄;rtd表示用戶的根目錄;txt表示進(jìn)程運(yùn)行的程序代碼;mem表示直接映射到內(nèi)存中的文件(上例中都是動(dòng)態(tài)庫)。有的FD格式為數(shù)字+訪問權(quán)限,其中數(shù)字是文件描述符額具體數(shù)值,訪問權(quán)限包括r(可讀)、w(可寫)、u(可讀可寫),上圖中,0u、1u、2u分別表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤輸出,3u表示處于LISTEN狀態(tài)的監(jiān)聽socket,4u表示epoll內(nèi)核事件表對應(yīng)的文件描述符。

5.TYPE:文件描述符的類型。其中DIR是目錄;REG是普通文件;CHR是字符設(shè)備文件;IPv4是IPv4類型的socket文件描述符;0000是未知類型。更多類型可參考lsof命令的man手冊。

6.DEVICE:文件所屬設(shè)備。對于字符設(shè)備和塊設(shè)備,其表示方法是主設(shè)備號(hào),次設(shè)備號(hào),由上圖可見,測試機(jī)器上的程序文件和動(dòng)態(tài)庫都放在設(shè)備8,3上,其中,8表示這是一個(gè)SCSI(Small Computer System Interface,小型計(jì)算機(jī)系統(tǒng)接口)硬盤,3表示這是該硬盤上的第3個(gè)分區(qū),即sda3。websrv進(jìn)程的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤對應(yīng)的設(shè)備是136,3,其中136表示這是一個(gè)偽終端,3表示它是第3個(gè)偽終端,即/dev/pts/3。對于FIFO類型的文件,如管道和socket,該字段將顯示一個(gè)內(nèi)核引用目標(biāo)文件的地址,或者是其i節(jié)點(diǎn)號(hào)。

7.SIZE/OFF:文件大小或偏移值。如果如果該字段顯示為0t*0x*,就表示這是一個(gè)偏移值,否則就表示這是一個(gè)文件大小。對字符設(shè)備或FIFO類型的文件定義文件大小沒有意義,所以該字段將顯示一個(gè)偏移值。

9.NODE:文件的i節(jié)點(diǎn)號(hào)。對于socket,則顯示為協(xié)議類型,如TCP。

10.NAME:文件名。

如果我們使用telnet命令向websrv服務(wù)器發(fā)起一個(gè)連接,再次執(zhí)行上圖中的lsof命令時(shí),會(huì)多輸出以下行:
在這里插入圖片描述
該輸出表示服務(wù)器打開了一個(gè)IPv4類型的socket,其值為5,且它處于ESTABLISHED狀態(tài)。該socket對應(yīng)的連接的本端socket地址是(127.0.0.1, 13579),遠(yuǎn)端socket地址是(127.0.0.1, 48215)。

nc(netcat)命令主要用來快速構(gòu)建網(wǎng)絡(luò)連接,我們可以讓它以服務(wù)器方式運(yùn)行,監(jiān)聽某個(gè)端口并接收客戶連接,因此它可用來調(diào)試客戶端程序,我們也可以使之以客戶端方式運(yùn)行,向服務(wù)器發(fā)起連接并收發(fā)數(shù)據(jù),因此它可用來調(diào)試服務(wù)器程序,此時(shí)它有點(diǎn)像telnet程序。

nc命令常用的選項(xiàng):
1.-i:設(shè)置數(shù)據(jù)包傳送的時(shí)間間隔。

2.-l:以服務(wù)器方式運(yùn)行,監(jiān)聽指定的端口。nc命令默認(rèn)以客戶端方式運(yùn)行。

3.-k:保持服務(wù)器持續(xù)監(jiān)聽,nc不會(huì)在客戶端連接終止后退出,而是繼續(xù)保持監(jiān)聽狀態(tài),必須與-l選項(xiàng)一起使用。

4.-n:使用IP地址表示主機(jī),而不是主機(jī)名;使用數(shù)字表示端口號(hào),而不是服務(wù)名。即不做任何DNS或服務(wù)查找,此時(shí)用戶需要提供原始IP地址和端口號(hào),使用該選項(xiàng)的情形:
(1)需要快速測試,避免額外的解析帶來的時(shí)間消耗。

(2)DNS解析不可用時(shí),可以使用IP進(jìn)行連接。

(3)需要指定特定的地址,避免解析結(jié)果帶來的不確定性。

5.-p:當(dāng)nc命令以客戶端運(yùn)行時(shí),強(qiáng)制其使用指定的端口號(hào)。

6.-s:設(shè)置本地主機(jī)發(fā)送出的數(shù)據(jù)包的IP地址。

7.-C:將CR和LF兩個(gè)字符作為行結(jié)束符。

8.-U:使用UNIX本地域協(xié)議通信。

9.-u:使用UDP協(xié)議。nc命令默認(rèn)使用的傳輸層協(xié)議是TCP協(xié)議。

10.-w:如果nc客戶端在指定的時(shí)間內(nèi)未檢測到任何輸入,則退出。

11.-X:當(dāng)nc客戶端和代理服務(wù)器通信時(shí),該選項(xiàng)指定它們之間使用的通信協(xié)議,目前nc支持的代理協(xié)議有4(SOCKS v.4)、5(SOCKS v.5)、connect(HTTPS proxy),nc默認(rèn)使用的代理協(xié)議是SOCKS v.5。

12.-x:指定目標(biāo)代理服務(wù)器的IP地址和端口號(hào),比如,要連接到ernest-laptop上的squid代理服務(wù)器,并通過它來訪問www.baidu.com的Web服務(wù),可用以下命令:
在這里插入圖片描述
13:-z:掃描目標(biāo)機(jī)器上的某個(gè)或某些服務(wù)是否開啟(端口掃描),比如,要掃描機(jī)器ernest-laptop上端口在20~50之間的服務(wù),可用以下命令:
在這里插入圖片描述
我們可用以下方式來連接websrv服務(wù)器并向它發(fā)送數(shù)據(jù):
在這里插入圖片描述
上圖中使用了-C選項(xiàng),這樣我們每次按下回車鍵向服務(wù)器發(fā)送一行數(shù)據(jù)時(shí),nc客戶端都會(huì)給服務(wù)器額外發(fā)送一個(gè)<CR><LF>,這正是websrv服務(wù)器期望的HTTP行結(jié)束符。發(fā)完第三行數(shù)據(jù)后,我們得到了服務(wù)器的響應(yīng),內(nèi)容正是我們期望的:服務(wù)器沒有找到被請求的資源文件a.html。

strace跟蹤程序運(yùn)行過程中指定的系統(tǒng)調(diào)用和接收到的信號(hào),并將系統(tǒng)調(diào)用名、參數(shù)、返回值、信號(hào)名輸出到標(biāo)準(zhǔn)輸出或指定文件。

strace命令常用選項(xiàng)包括:
1.-c:統(tǒng)計(jì)每個(gè)系統(tǒng)調(diào)用執(zhí)行時(shí)間、執(zhí)行次數(shù)、出錯(cuò)次數(shù)。

2.-f:跟蹤由fork函數(shù)生成的子進(jìn)程。

3.-t:在輸出的每行信息前加上時(shí)間信息。

4.-e:指定一個(gè)表達(dá)式,用來控制如何跟蹤系統(tǒng)調(diào)用(或接收到的信號(hào),下同),其格式為:
在這里插入圖片描述
qualifier可以是trace、abbrev、verbose、raw、signal、read、write之一,默認(rèn)是trace。value是用于進(jìn)一步限制被跟蹤的系統(tǒng)調(diào)用的符號(hào)或數(shù)值,它的兩個(gè)特殊取值時(shí)all和none,分別表示跟蹤所有由qulifier指定類型的系統(tǒng)調(diào)用和不跟蹤任何該類型的系統(tǒng)調(diào)用。以下是其他value取值:
(1)-e trace=set:只跟蹤指定的系統(tǒng)調(diào)用。例如-e trace=open, close, read, write表示只跟蹤open、close、read、write這4種系統(tǒng)調(diào)用。

(2)-e trace=file:只跟蹤與文件操作相關(guān)的系統(tǒng)調(diào)用。

(3)-e trace=process:只跟蹤與進(jìn)程控制相關(guān)的系統(tǒng)調(diào)用。

(4)-e trace=network:只跟蹤與網(wǎng)絡(luò)相關(guān)的系統(tǒng)調(diào)用。

(5)-e trace=signal:只跟蹤與信號(hào)相關(guān)的系統(tǒng)調(diào)用。

(6)-e trace=ipc:只跟蹤與進(jìn)程間通信相關(guān)的系統(tǒng)調(diào)用。

(7)-e signal=set:只跟蹤指定信號(hào),如-e signal=!SIGIO表示跟蹤除SIGIO之外的所有信號(hào)。

(8)-e read=set:輸出從指定文件中讀入的數(shù)據(jù),如-e read=3, 5表示輸出所有從文件描述符3和5讀入的數(shù)據(jù)。

5.-o:將strace的輸出寫入指定的文件。

strace命令的每行都包含以下字段:系統(tǒng)調(diào)用名、參數(shù)、返回值,如下面的實(shí)例:
在這里插入圖片描述
這行輸出表示,程序cat /dev/null在運(yùn)行過程中執(zhí)行了open系統(tǒng)調(diào)用,open調(diào)用以只讀方式打開了大文件/dev/null,然后返回了值為3的文件描述符。上圖中命令會(huì)輸出很多內(nèi)容,我們省略了次要的信息,后面的示例中,我們也僅顯示主題相關(guān)的內(nèi)容。

當(dāng)系統(tǒng)調(diào)用發(fā)生錯(cuò)誤時(shí),strace命令將輸出錯(cuò)誤標(biāo)識(shí)和描述,如以下示例:
在這里插入圖片描述
上圖中的O_LARGEFILE并不是POSIX標(biāo)準(zhǔn)的一部分,而是一些UNIX-like操作系統(tǒng)的擴(kuò)展,它通常用于兼容早期UNIX系統(tǒng),告訴操作系統(tǒng)要支持大文件(大于2 GB)的訪問。

stace命令對不同的參數(shù)類型也有不同的輸出方式:
1.對于C風(fēng)格字符串,strace將輸出字符串的內(nèi)容。默認(rèn)的最大輸出長度是32字節(jié),對于過長的部分strace會(huì)使用...省略,比如,ls -l命令在運(yùn)行過程中將讀取/etc/passwd文件:
在這里插入圖片描述
文件名不被strace當(dāng)作C風(fēng)格字符串,其內(nèi)容總是被完整輸出。

2.對于結(jié)構(gòu)體,strace將用{}輸出該結(jié)構(gòu)體的每個(gè)字段,并用,將每個(gè)字段隔開,對于字段較多的結(jié)構(gòu)體,strace將用...省略部分輸出,比如:
在這里插入圖片描述
上圖中的lstat64函數(shù)不是標(biāo)準(zhǔn)C庫函數(shù),而是一種在一些UNIX-like操作系統(tǒng)上可用的擴(kuò)展函數(shù),它類似于標(biāo)準(zhǔn)的lstat函數(shù),但支持大文件(大于2 GB)的文件屬性查詢,以確保文件屬性信息能夠正確獲取和處理。

上面的strace輸出顯示,lstat64系統(tǒng)調(diào)用的第一個(gè)參數(shù)是字符串參數(shù)/dev/null,第二個(gè)參數(shù)是stat結(jié)構(gòu)體類型的輸出參數(shù)(指針),strace僅顯示了該結(jié)構(gòu)體參數(shù)的兩個(gè)字段:st_mode和st_rdev,當(dāng)系統(tǒng)調(diào)用失敗時(shí),輸出參數(shù)將顯示為傳入前的值。

3.對于位集合參數(shù)(如信號(hào)集類型sigset_t),strace將用[]輸出該集合中所有被置1的位,并用空格隔開每一項(xiàng),假設(shè)某程序中有以下代碼:
在這里插入圖片描述
則針對該程序的strace命令將輸出以下內(nèi)容:
在這里插入圖片描述
對于其他類型參數(shù)的輸出方式,可參考strace的man手冊。對于程序接收到的信號(hào),strace將輸出該信號(hào)的值及其描述,比如,我們在一個(gè)終端上運(yùn)行sleep 100命令,然后在另一個(gè)終端上使用strace命令跟蹤該進(jìn)程,接著用Ctrl+C終止命令sleep 100以觀察strace的輸出,具體操作如下:
在這里插入圖片描述
在這里插入圖片描述
下面考慮一個(gè)使用strace命令的完整例子,查看websrv服務(wù)器在處理客戶連接和數(shù)據(jù)時(shí)使用系統(tǒng)調(diào)用的情況,具體操作如下:
在這里插入圖片描述
可見,服務(wù)器當(dāng)前正在執(zhí)行epoll_wait系統(tǒng)調(diào)用以等待客戶請求,接下來我們使用以上nc命令對服務(wù)器發(fā)起一個(gè)連接并逐行發(fā)送HTTP請求,此時(shí)strace命令的輸出如下所示:
在這里插入圖片描述
在這里插入圖片描述
上圖的輸出分為五個(gè)部分,我們用空行將每個(gè)部分隔開:
1.第一部分從第一次epoll_wait系統(tǒng)調(diào)用開始,此次epoll_wait調(diào)用檢測到了文件描述符3上的EPOLLIN事件,文件描述符3是服務(wù)器的監(jiān)聽socket,因此這個(gè)事件表示有新客戶連接到來,于是websrv服務(wù)器對監(jiān)聽socket執(zhí)行了accept調(diào)用,accept返回一個(gè)新的連接socket,其值為5,接著,服務(wù)器清除這個(gè)新socket上的錯(cuò)誤,設(shè)置其SO_REUSEADDR屬性,然后往epoll內(nèi)核事件表中注冊該socket上的EPOLLRDHUP和EPOLLONESHOT兩個(gè)事件,然后設(shè)置新socket為非阻塞的。

2.第二部分從第二次epoll_wait系統(tǒng)調(diào)用開始,此次epoll_wait函數(shù)檢測到了文件描述符5上的EPOLLIN事件,這表示客戶端的第一行數(shù)據(jù)到達(dá)了,于是服務(wù)器執(zhí)行了兩次recv系統(tǒng)調(diào)用來接收數(shù)據(jù),第一次recv函數(shù)讀取到38字節(jié)的客戶數(shù)據(jù),即GET http://localhost/a.html HTTP/1.1\r\n。第二次recv函數(shù)失敗了,errno是EAGAIN,這表示目前沒有更多的客戶數(shù)據(jù)可讀。此后服務(wù)器調(diào)用了futex函數(shù)對互斥鎖解鎖,以喚醒等待互斥鎖的線程。可見POSIX線程庫中的pthread_mutex_unlock函數(shù)在內(nèi)部調(diào)用了futex函數(shù)。

3.與2類似。

4.與2類似。

5.epoll_wait函數(shù)檢測到了文件描述符5上的EPOLLOUT事件,這表示工作線程正確處理了客戶請求,并準(zhǔn)備好了待發(fā)送的數(shù)據(jù),因此主線程開始執(zhí)行writev系統(tǒng)調(diào)用往客戶端寫入HTTP應(yīng)答,最后,服務(wù)器從epoll內(nèi)核事件表中移除文件描述符5上的所有注冊事件,并關(guān)閉該文件描述符。

netstat可以打印本地網(wǎng)卡接口上的全部連接、路由表信息、網(wǎng)卡接口信息等,本書主要使用上述功能中的第一個(gè),即顯示TCP連接及其狀態(tài)信息,畢竟,要想獲得路由表信息和網(wǎng)卡接口信息,我們可以使用輸出內(nèi)容更豐富的route(管理和顯示系統(tǒng)的網(wǎng)絡(luò)路由表的命令)和ifconfig命令。

netstat命令常用選項(xiàng):
1.-n:使用IP地址表示主機(jī),而不是主機(jī)名;使用數(shù)字表示端口號(hào),而不是服務(wù)名。

2.-a:也顯示監(jiān)聽socket。

3.-t:僅顯示TCP連接。

4.-r:顯示路由信息。

5.-i:顯示網(wǎng)卡接口的數(shù)據(jù)流量。

6.-c:每隔1秒輸出一次。

7.-o:顯示socket定時(shí)器(如?;疃〞r(shí)器)的信息。

8.-p:顯示socket所屬的進(jìn)程的PID和名字。

運(yùn)行websrv服務(wù)器,并執(zhí)行telnet命令對它發(fā)起一個(gè)連接請求:
在這里插入圖片描述
然后執(zhí)行netstat -nat | grep 127.0.0.1:13579來查看連接狀態(tài),結(jié)果如下:
在這里插入圖片描述
由上圖,netstat的每行輸出都包含以下6個(gè)字段(默認(rèn)情況):
1.Proto:協(xié)議名。

2.Recv-Q:socket內(nèi)核接收緩沖區(qū)中尚未被應(yīng)用進(jìn)程讀取的數(shù)據(jù)量。

3.Send-Q:未被對方確認(rèn)的數(shù)據(jù)量。

4.Local Address:本端的IP和端口號(hào)。

5.Foreign Address:對方的IP地址和端口號(hào)。

6.State:socket的狀態(tài)。對于無狀態(tài)協(xié)議,如UDP,這一列將顯示為空。對于面向連接的協(xié)議,netstat支持的State包括ESTABLISHED、SYN_SENT、SYN_RCVD、FIN_WAIT1、FIN_WAIT2、TIME_WAIT、CLOSE、CLOSE_WAIT、LAST_ACK、LISTEN、CLOSING、UNKNOWN。

上圖的輸出中,第1行表示本地socket地址127.0.0.1:13579處于LISTEN狀態(tài),并等待任何遠(yuǎn)端socket(用0.0.0.0:*表示)對它發(fā)起連接。第2行表示服務(wù)器和遠(yuǎn)端地址127.0.0.1:48220建立了一個(gè)連接。第3行是從客戶端角度重復(fù)輸出第2行信息表示的這個(gè)連接,因?yàn)槲覀兪窃谕慌_(tái)機(jī)器上運(yùn)行服務(wù)器和客戶端的。

vmstat(virtual memory statistics)命令能實(shí)時(shí)輸出系統(tǒng)的各種資源的使用情況,如進(jìn)程信息、內(nèi)存使用、CPU使用率、IO使用情況。

vmstat命令常用選項(xiàng):
1.-f:顯示系統(tǒng)自啟動(dòng)以來執(zhí)行的fork次數(shù)。

2.-s:顯示內(nèi)存相關(guān)的統(tǒng)計(jì)信息及多種系統(tǒng)活動(dòng)的數(shù)量(如CPU上下文切換次數(shù))。

3.-d:顯示磁盤相關(guān)的統(tǒng)計(jì)信息。

4.-p:顯示磁盤分區(qū)的統(tǒng)計(jì)信息。

5.-S:使用指定單位來顯示。參數(shù)k、K、m、M分別代表1000、1024、1000000、1048576字節(jié)。

6.delay:采樣間隔(單位是秒),即每隔delay的時(shí)間輸出一次統(tǒng)計(jì)信息。

7.count:采樣次數(shù),輸出count次統(tǒng)計(jì)信息。

默認(rèn)vmstat命令的輸出:
在這里插入圖片描述
第1行輸出是自系統(tǒng)啟動(dòng)以來的平均結(jié)果,而后面的輸出是采樣間隔內(nèi)的平均結(jié)果。vmstat命令的每條輸出都包含6個(gè)字段,它們的含義分別是:
1.procs:進(jìn)程信息。r表示等待運(yùn)行的進(jìn)程數(shù);b表示處于不可中斷睡眠狀態(tài)的進(jìn)程數(shù)(即它們在等待進(jìn)程IO)。

2.memory:內(nèi)存信息。各項(xiàng)的單位都是KB。swpd表示虛擬內(nèi)存的使用量。free表示空閑內(nèi)存的使用量。buff表示作為buffer cache的內(nèi)存數(shù)量,其中包含原始磁盤塊(從磁盤讀入的數(shù)據(jù)可能被保持在buffer cache中,以便下一次快速訪問)。cache表示作為page cache的內(nèi)存數(shù)量,待寫入磁盤的數(shù)據(jù)首先被放到page cache中,然后由磁盤中斷程序?qū)懭氪疟P。

3.swap:交換分區(qū)(虛擬內(nèi)存)的使用信息,各項(xiàng)的單位是KB/s。si表示數(shù)據(jù)由磁盤交換至內(nèi)存的速率。so表示數(shù)據(jù)由內(nèi)存交換至磁盤的速率。如果這兩個(gè)值經(jīng)常變化,說明內(nèi)存不足。

4.io:塊設(shè)備的使用信息,單位是block/s。bi表示從塊設(shè)備讀入塊的速率。bo表示向塊設(shè)備寫入塊的速率。

5.system:系統(tǒng)信息。in表示每秒發(fā)生的中斷次數(shù)。cs表示每秒發(fā)生的上下文切換(進(jìn)程切換)次數(shù)。

6.cpu:CPU使用信息。us表示系統(tǒng)所有進(jìn)程運(yùn)行在用戶空間的時(shí)間占CPU總運(yùn)行時(shí)間的比例。sy表示系統(tǒng)所有進(jìn)程運(yùn)行在內(nèi)核空間的時(shí)間占CPU總運(yùn)行時(shí)間的比例。id表示CPU處于空閑狀態(tài)的時(shí)間占CPU總運(yùn)行時(shí)間的比例。wa表示CPU等待IO事件的時(shí)間占CPU總運(yùn)行時(shí)間的比例。

我們可用iostat命令獲得磁盤使用情況的更多信息,也能使用mpstat命令獲得CPU使用情況的更多信息,vmstat命令主要用于查看系統(tǒng)內(nèi)存的使用情況。

ifstat(interface statistics)命令可用于監(jiān)測網(wǎng)絡(luò)流量,其常用選項(xiàng)如下:
1.-a:監(jiān)測系統(tǒng)上所有網(wǎng)卡接口。

2.-i:指定要監(jiān)測的網(wǎng)卡接口。

3.-t:在每行輸出信息前加上時(shí)間戳。

4.-b:以Kbit/s為單位顯示數(shù)據(jù),而不是默認(rèn)的KB/s。

5.delay:采樣間隔,單位是秒,即每隔delay時(shí)間輸出一次統(tǒng)計(jì)信息。

6.count:采樣次數(shù),即總共輸出count次統(tǒng)計(jì)信息。

ifstat命令的例子:
在這里插入圖片描述
從輸出來看,該主機(jī)擁有兩個(gè)網(wǎng)卡接口:虛擬的回路接口lo和以太網(wǎng)網(wǎng)卡接口eth0。使用ifstat命令可以大概估計(jì)各個(gè)時(shí)段服務(wù)器的總輸入、輸出流量。

mpstat(multi-processor statistics)命令能實(shí)時(shí)監(jiān)測多處理器系統(tǒng)上每個(gè)CPU的使用情況。mpstat命令和iostat命令通常都集成在包sysstat中,安裝sysstat即可獲得這兩個(gè)命令。mpstat命令的典型用法如下:
在這里插入圖片描述
選項(xiàng)P指定要監(jiān)聽的CPU號(hào)(0~CPU個(gè)數(shù)-1),其值A(chǔ)LL表示監(jiān)聽所有CPU。interval參數(shù)是采樣間隔,單位是秒,即每個(gè)interval的時(shí)間輸出一次統(tǒng)計(jì)信息。count參數(shù)是采樣次數(shù),即共輸出count次統(tǒng)計(jì)信息,但mpstat命令最后還會(huì)輸出這count次采樣結(jié)果的平均值。與vmstat命令一樣,mpstat命令輸出的第一次結(jié)果是自系統(tǒng)啟動(dòng)以來的平均結(jié)果,而后面的輸出結(jié)果則是采樣間隔內(nèi)的平均結(jié)果。

使用mpstat命令的例子:
在這里插入圖片描述
為顯示方便,我們省略了每行輸出的前導(dǎo)時(shí)間戳。每次采樣的輸出都包含3條信息,每條信息包含以下幾個(gè)字段:
1.CPU:指示該條信息是哪個(gè)CPU的數(shù)據(jù)。0表示第1個(gè)CPU的數(shù)據(jù),1表示第2個(gè)CPU的數(shù)據(jù),all是這兩個(gè)CPU數(shù)據(jù)的平均值。

2.%usr:除了nice值為負(fù)的進(jìn)程,系統(tǒng)上其他進(jìn)程運(yùn)行在用戶空間的時(shí)間占CPU總運(yùn)行時(shí)間的比例。

3.%nice:nice值為負(fù)的進(jìn)程運(yùn)行在用戶空間的時(shí)間占CPU總運(yùn)行時(shí)間的比例。

4.%sys:系統(tǒng)上所有進(jìn)程運(yùn)行在內(nèi)核空間的時(shí)間占CPU總運(yùn)行時(shí)間的比例,但不包括硬件和軟件中斷消耗的CPU時(shí)間。

5.%iowait:CPU等待磁盤操作的時(shí)間占CPU總運(yùn)行時(shí)間的比例。

6.%irq:CPU用于處理硬件中斷的時(shí)間占CPU總運(yùn)行時(shí)間的比例。

7.%soft:CPU用于處理軟件中斷的時(shí)間占CPU總運(yùn)行時(shí)間的比例。

8.%steal:一個(gè)物理CPU可以包含一對虛擬CPU,這一對虛擬CPU由超級管理程序管理。當(dāng)超級管理程序在處理某個(gè)虛擬CPU時(shí),另外一個(gè)虛擬CPU必須等待它處理完成才能運(yùn)行,這部分等待事件就是steal時(shí)間,該字段表示steal時(shí)間占CPU總運(yùn)行時(shí)間的比例。

9.%guest:運(yùn)行虛擬CPU的時(shí)間占總運(yùn)行時(shí)間的比例。

10.%idle:系統(tǒng)空閑的時(shí)間占CPU總運(yùn)行時(shí)間的比例。

在以上所有輸出字段中,我們最關(guān)心的是%user、%sys、%idle,它們基本反映了我們的代碼中業(yè)務(wù)邏輯代碼和系統(tǒng)調(diào)用所占的比例,以及系統(tǒng)還能承受多大的負(fù)載。上圖輸出中,執(zhí)行系統(tǒng)調(diào)用占用的CPU時(shí)間比執(zhí)行用戶業(yè)務(wù)邏輯占用的CPU時(shí)間要多,這是因?yàn)槲覀冞\(yùn)行了第十六章中的壓力測試工具,它在不停地執(zhí)行recv/send系統(tǒng)調(diào)用來收發(fā)數(shù)據(jù)。

http://aloenet.com.cn/news/31786.html

相關(guān)文章:

  • 有哪些網(wǎng)站能免費(fèi)建站網(wǎng)站如何推廣運(yùn)營
  • javaweb做網(wǎng)站的優(yōu)點(diǎn)中國科技新聞網(wǎng)
  • 800元做網(wǎng)站百度數(shù)據(jù)分析
  • 動(dòng)態(tài)網(wǎng)站開發(fā)畢業(yè)論文網(wǎng)站軟文是什么
  • 建網(wǎng)站必須要服務(wù)器嗎臺(tái)州seo網(wǎng)站排名優(yōu)化
  • 做里番網(wǎng)站犯法嗎新鄭網(wǎng)絡(luò)推廣外包
  • asp.net網(wǎng)站搬遷到移動(dòng)終端中文域名注冊官網(wǎng)入口
  • 為什么大網(wǎng)站的百度快照更新速度慢還排第一廣告公司名稱
  • 福州網(wǎng)站怎么做的免費(fèi)網(wǎng)站誰有靠譜的
  • 建網(wǎng)站 西安seo網(wǎng)站排名優(yōu)化公司哪家好
  • 淘客請人做網(wǎng)站阿里指數(shù)在線查詢
  • 網(wǎng)站開發(fā) 網(wǎng)頁制作網(wǎng)頁推廣鏈接怎么做
  • 網(wǎng)頁設(shè)計(jì)與網(wǎng)站建設(shè)的概述優(yōu)化是什么梗
  • 網(wǎng)絡(luò)營銷相關(guān)的崗位有哪些新手seo入門教程
  • 廣州代做網(wǎng)站二維碼推廣賺傭金平臺(tái)
  • sketch視頻教程網(wǎng)站西安seo建站
  • 如何刪除自己建的網(wǎng)站seo分析報(bào)告
  • 微信頁面徐州自動(dòng)seo
  • wordpress源代碼優(yōu)化分析
  • 做外貿(mào)網(wǎng)站詐騙株洲seo優(yōu)化哪家好
  • 五百丁簡歷模板官方網(wǎng)站互聯(lián)網(wǎng)營銷師報(bào)名入口
  • 網(wǎng)站首頁ico怎么做平臺(tái)網(wǎng)站開發(fā)公司
  • 邢臺(tái)新聞網(wǎng)關(guān)鍵詞優(yōu)化的主要工具
  • 中國建筑工程人才網(wǎng)湖南有實(shí)力seo優(yōu)化
  • 高級程序員培訓(xùn)西安seo高手
  • 提供專業(yè)網(wǎng)站小程序開發(fā)朝陽網(wǎng)站建設(shè)
  • 香河做網(wǎng)站公司設(shè)計(jì)師網(wǎng)站
  • 淘寶網(wǎng)手機(jī)版百度seo快速排名優(yōu)化軟件
  • b2c網(wǎng)絡(luò)零售平臺(tái)南陽seo優(yōu)化
  • 北京市公司網(wǎng)站制作全達(dá)seo