上一篇: 網(wǎng)頁建設(shè)公司:用CSS設(shè)置圖片效果
下一篇: 怎樣自己建設(shè)網(wǎng)站:調(diào)試內(nèi)核態(tài)的信息,就需要在安裝SystemaTap包
如何建設(shè)一個網(wǎng)站:SystemTap是運維調(diào)試利器。
只用Wireshark抓包,流程思想和TcpDump是類似的,同樣需要選擇監(jiān)聽的網(wǎng)卡(這
里包括是否用混雜模式),填寫基本的過濾條件和表達式等。考慮到圖形界面不適合在服
務(wù)器端運行,故在這里不進行闡述。
在已經(jīng)擁有TcpDump導出的數(shù)據(jù)包后,可以將其導入Wireshark查看,界面如圖1-5
所示。圖1-5顯示的界面相當清新。在filter中填寫過濾條件時會有自動補全的提示。比
如,只需要寫“http.res”,就自動提示了“http.response.code”。在第二行中,顯示的是解
碼后的信息,并且以協(xié)議層次作為樹結(jié)構(gòu)展示,這樣大大提高了數(shù)據(jù)的可讀性。
其中,qualifier只能是trace、abbrev、verbose、raw、signal、read、write其中之一,
默認為trace。舉例如下。
◎ -eopen:等價于.e trace=open,表示只跟蹤open調(diào)用。
◎ -etraceI =open:跟蹤除了open以外的其他調(diào)用。
除了具體的系統(tǒng)調(diào)用以外,還可以指定跟蹤某一類的系統(tǒng)調(diào)用,包括file、process、
network、signal和ipc,分別代表文件操作、進程操作、網(wǎng)絡(luò)操作、信號操作和進程間通信。
另一個常用qualifier是signal,用來指定跟蹤的系統(tǒng)信號,默認為all。如signal=! SIGIO
(或者signal= !io),表示不跟蹤SIGIO信號。
在strace的輸出中,我們經(jīng)常看到大量的“ENOENT(No such file or directory)”,這是
因為Linux本身對動態(tài)庫和頭文件等的存放位置是都多處記錄的,需要全部查詢來進行查
找。比如下面這樣。
以在不中斷和影響進程運行的情況下,暴露出其內(nèi)部變量和事件信息等。
SystemTap的主要工作方式是由使用者書寫一種類似awk語法的腳本語言(一般我們
會保存成.stap/.stp文件),然后根據(jù)stap腳本自動生成一個臨時的內(nèi)核模塊并加載進內(nèi)核
運行。
注意它需要使用Linux的Utrace特性來探測用戶空間,所以目前對默認不支持Utrace
的Debian系服務(wù)器來說,SystemTap還不太方便使用。但對于生產(chǎn)線上更常見的RedHat
系服務(wù)器,SystemTap無疑是運維調(diào)試利器。