精通軟件性能測(cè)試與LoadRunner最佳實(shí)戰(zhàn) 連載六
8.2.5 Linux操作系統(tǒng)進(jìn)程監(jiān)控技術(shù)
Linux在進(jìn)程監(jiān)控方面同樣出色,不僅可以通過圖形用戶界面的管理工具,還可以用命令方式顯示進(jìn)程相關(guān)信息。像“Windows的任務(wù)管理器”一樣,在RedHat 9中可以通過單擊“系統(tǒng)工具”→“系統(tǒng)監(jiān)視器”,啟動(dòng)“系統(tǒng)監(jiān)視器”,如圖8-19所示。
圖8-19 “系統(tǒng)監(jiān)視器”對(duì)話框
Linux系統(tǒng)提供了ps、top等查看進(jìn)程信息的系統(tǒng)調(diào)用,通過結(jié)合使用這些系統(tǒng)調(diào)用,可以清晰地了解進(jìn)程的運(yùn)行狀態(tài)以及存活情況,從而采取相應(yīng)的措施,來確保Linux系統(tǒng)的性能。ps是目前在Linux下最常見的進(jìn)程狀況查看命令,是隨Linux版本發(fā)行的,安裝好系統(tǒng)之后,用戶就可以使用。這里以ps命令為例,ps命令是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令。利用它可以確定有哪些進(jìn)程正在運(yùn)行及運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵死、哪些進(jìn)程占用了過多的資源等。下面介紹一下ps命令的主要參數(shù)項(xiàng)的含義,如表8-2所示。
表8-2 ps命令的主要參數(shù)項(xiàng)說明
選 項(xiàng) 名 稱 | 說 明 |
-A | 顯示所有程序 |
a | 顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶的程序 |
c | 列出程序時(shí),顯示每個(gè)程序真正的指令名稱,而不包含路徑、參數(shù)或常駐服務(wù)的標(biāo)示 |
-e | 此參數(shù)的效果和指定“A”參數(shù)相同 |
e | 列出程序時(shí),顯示每個(gè)程序所使用的環(huán)境變量 |
f | 用ASCII字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系 |
-H | 顯示樹狀結(jié)構(gòu),表示程序間的相互關(guān)系 |
-N | 顯示所有的程序,除了執(zhí)行ps指令終端機(jī)下的程序之外 |
s | 采用程序信號(hào)的格式顯示程序狀況 |
S | 列出程序時(shí),包括已中斷的子程序資料 |
-t<終端機(jī)編號(hào)> | 指定終端機(jī)編號(hào),并列出屬于該終端機(jī)的程序的狀況 |
u | 以用戶為主的格式來顯示程序狀況 |
x | 顯示所有程序,不以終端機(jī)來區(qū)分 |
為了使大家對(duì)該命令的使用有更深刻的認(rèn)識(shí),這里給大家舉幾個(gè)例子進(jìn)行說明。
1.示例一
ps命令可以監(jiān)控后臺(tái)進(jìn)程的工作情況,因?yàn)楹笈_(tái)進(jìn)程是不和屏幕、鍵盤這些標(biāo)準(zhǔn)輸入/輸出設(shè)備進(jìn)行通信的,如果需要檢測(cè)其情況,可以使用ps?-el命令,輸出內(nèi)容如圖8-20所示。
圖8-20 “ps–el”命令顯示的進(jìn)程信息
關(guān)于輸出信息項(xiàng)的含義,如表8-3所示。
表8-3 ps -el命令輸出項(xiàng)標(biāo)頭含義說明
輸 出 項(xiàng) | 說 明 |
F | 用數(shù)值表示目前進(jìn)程的狀態(tài) |
S | 用字符表示目前進(jìn)程的狀態(tài) |
UID | 進(jìn)程使用者的ID |
PID | PID表示進(jìn)程標(biāo)示符 |
C | 進(jìn)程使用CPU的估算 |
PRI | 進(jìn)程執(zhí)行的優(yōu)先級(jí) |
NI | Nice的值,Nice可以降低進(jìn)程執(zhí)行的優(yōu)先權(quán) |
SZ | Virtual Size,進(jìn)程在虛擬內(nèi)存中的大小 |
WCHAN | 等待頻道,當(dāng)為Null時(shí),表示進(jìn)程正在執(zhí)行,當(dāng)進(jìn)程在就緒時(shí)為Waiting for |
TTY | 表示該進(jìn)程建立時(shí)所對(duì)應(yīng)的終端,“?”表示該進(jìn)程不占用終端 |
TIME | 進(jìn)程已經(jīng)執(zhí)行的時(shí)間 |
CMD | 進(jìn)程被執(zhí)行的命令名稱 |
2.示例二
通常,在查看進(jìn)程的時(shí)候,最常用的命令是“ps aux”,有時(shí)為了查找特定的進(jìn)程,也會(huì)加入grep參數(shù),如“ps aux |grep init”輸出信息如圖8-21和圖8-22所示。
圖8-21 “ps aux”命令顯示的進(jìn)程信息
圖8-22 “ps aux|grep init”命令顯示的進(jìn)程信息
關(guān)于輸出信息項(xiàng)的含義,如表8-4所示。
表8-4 “ps aux | grep init”命令輸出項(xiàng)標(biāo)頭含義說明
輸 出 項(xiàng) | 說 明 |
USER | 用戶名 |
PID | PID表示進(jìn)程標(biāo)示符 |
輸 出 項(xiàng) | 說 明 |
%CPU | 當(dāng)前使用的CPU百分比 |
%MEM | RSS與系統(tǒng)中全部可用頁面的比率,因?yàn)镽SS是包含共享內(nèi)存在內(nèi)的近似值,這個(gè)百分比也是近似值,所以可能超過內(nèi)存總量。%MEM列的總和可能會(huì)超過100% |
VSZ | Virtual Size,進(jìn)程在虛擬內(nèi)存中的大小。包括所有映射的文件和設(shè)備,單位是千字節(jié) |
RSS | 進(jìn)程使用物理內(nèi)存的近似值,單位是千字節(jié) |
TTY | 表示該進(jìn)程建立時(shí)所對(duì)應(yīng)的終端,“?”表示該進(jìn)程不占用終端 |
STAT | 進(jìn)程狀態(tài)。STAT中的字符的含義如下: “D”:不可中斷 “R”:正在運(yùn)行,或在隊(duì)列中的進(jìn)程 “S”:處于休眠狀態(tài) “T”:停止或被追蹤 “Z”:僵尸進(jìn)程 “W”:進(jìn)入內(nèi)存交換 “X”:死掉的進(jìn)程 |
START | 進(jìn)程運(yùn)行的起始時(shí)間 |
TIME | 進(jìn)程已經(jīng)執(zhí)行的時(shí)間。單位以CPU運(yùn)行時(shí)間,min和s表示,來源于微態(tài)(用戶+系統(tǒng)時(shí)間)。如果出現(xiàn)較大的值(大于幾分鐘),那么意味著進(jìn)程已經(jīng)運(yùn)行了一段時(shí)間 |
COMMAND | 進(jìn)程被執(zhí)行的命令名稱。COMMAND項(xiàng)是被刪除過的以便于輸出與終端窗口符合。用“ps auxw”命令來使得輸出顯示更寬,最多可顯示132個(gè)字符 |
3.示例三
此外,還可以通過pstree命令查看Linux進(jìn)程樹。pstree命令以字符形式顯示樹狀結(jié)構(gòu),清晰地表達(dá)了程序間的相互關(guān)系。如果不指定程序識(shí)別碼或用戶名稱,則會(huì)把系統(tǒng)啟動(dòng)時(shí)的第一個(gè)程序視為基層,并顯示之后的所有程序;若指定用戶名稱,便會(huì)以隸屬該用戶的第一個(gè)程序當(dāng)做基層,然后顯示該用戶的所有程序。
下面,針對(duì)pstree選項(xiàng)進(jìn)行說明,如表8-5所示。
表8-5 “pstree”命令主要參數(shù)項(xiàng)說明
選 項(xiàng) 名 稱 | 說 明 |
-a | 顯示每個(gè)程序的完整指令,包含路徑、參數(shù)或是常駐服務(wù)的標(biāo)示 |
-G | 使用VT100終端機(jī)的列繪圖字符 |
c | 不使用精簡(jiǎn)標(biāo)示法 |
-h | 列出樹狀圖時(shí),特別標(biāo)明現(xiàn)在執(zhí)行的程序 |
-H<程序識(shí)別碼> | 此參數(shù)的效果和指定 |
選 項(xiàng) 名 稱 | 說 明 |
-l | 采用長(zhǎng)列格式顯示樹狀圖 |
-n | 用程序識(shí)別碼排序。預(yù)設(shè)是以程序名稱來排序 |
-p | 顯示程序識(shí)別碼 |
-u | 顯示用戶名稱 |
–U | 使用UTF |
-V | 顯示版本信息 |
如果要以長(zhǎng)列格式顯示樹狀圖,并且顯示每個(gè)進(jìn)程的完整指令,則可以在命令行輸入“pstree –a –l”,回車執(zhí)行,輸出內(nèi)容如圖8-23所示。
圖8-23 “pstree –a –l”命令顯示的進(jìn)程信息
8.2.6 Linux操作系統(tǒng)進(jìn)程終止技術(shù)
Linux操作系統(tǒng)也有結(jié)束進(jìn)程的對(duì)應(yīng)方法,在RedHat 9系統(tǒng)中,終止一個(gè)進(jìn)程或正在運(yùn)行的程序,一般是通過kill、killall、pkill等命令進(jìn)行操作。
下面結(jié)合實(shí)例給大家具體介紹一下,這些命令是如何應(yīng)用于具體的工作當(dāng)中。首先,看一下kill命令,這里給大家介紹一個(gè)通用的查看命令幫助的方法,通常可以用“man命令”的方式來查看該命令的幫助信息,如查看kill命令幫助,則可以在終端命令窗口輸入“man kill”,回車執(zhí)行,顯示如圖8-24所示信息,可以輸入“q”退出幫助信息查看。
圖8-24 “kill”命令幫助
3.示例三
此外,還可以通過pstree命令查看Linux進(jìn)程樹。pstree命令以字符形式顯示樹狀結(jié)構(gòu),清晰地表達(dá)了程序間的相互關(guān)系。如果不指定程序識(shí)別碼或用戶名稱,則會(huì)把系統(tǒng)啟動(dòng)時(shí)的第一個(gè)程序視為基層,并顯示之后的所有程序;若指定用戶名稱,便會(huì)以隸屬該用戶的第一個(gè)程序當(dāng)做基層,然后顯示該用戶的所有程序。
下面,針對(duì)pstree選項(xiàng)進(jìn)行說明,如表8-5所示。
表8-5 “pstree”命令主要參數(shù)項(xiàng)說明
選 項(xiàng) 名 稱 | 說 明 |
-a | 顯示每個(gè)程序的完整指令,包含路徑、參數(shù)或是常駐服務(wù)的標(biāo)示 |
-G | 使用VT100終端機(jī)的列繪圖字符 |
c | 不使用精簡(jiǎn)標(biāo)示法 |
-h | 列出樹狀圖時(shí),特別標(biāo)明現(xiàn)在執(zhí)行的程序 |
-H<程序識(shí)別碼> | 此參數(shù)的效果和指定 |
選 項(xiàng) 名 稱 | 說 明 |
-l | 采用長(zhǎng)列格式顯示樹狀圖 |
-n | 用程序識(shí)別碼排序。預(yù)設(shè)是以程序名稱來排序 |
-p | 顯示程序識(shí)別碼 |
-u | 顯示用戶名稱 |
–U | 使用UTF |
-V | 顯示版本信息 |
如果要以長(zhǎng)列格式顯示樹狀圖,并且顯示每個(gè)進(jìn)程的完整指令,則可以在命令行輸入“pstree –a –l”,回車執(zhí)行,輸出內(nèi)容如圖8-23所示。
圖8-23 “pstree –a –l”命令顯示的進(jìn)程信息
8.2.6 Linux操作系統(tǒng)進(jìn)程終止技術(shù)
Linux操作系統(tǒng)也有結(jié)束進(jìn)程的對(duì)應(yīng)方法,在RedHat 9系統(tǒng)中,終止一個(gè)進(jìn)程或正在運(yùn)行的程序,一般是通過kill、killall、pkill等命令進(jìn)行操作。
下面結(jié)合實(shí)例給大家具體介紹一下,這些命令是如何應(yīng)用于具體的工作當(dāng)中。首先,看一下kill命令,這里給大家介紹一個(gè)通用的查看命令幫助的方法,通常可以用“man命令”的方式來查看該命令的幫助信息,如查看kill命令幫助,則可以在終端命令窗口輸入“man kill”,回車執(zhí)行,顯示如圖8-24所示信息,可以輸入“q”退出幫助信息查看。
圖8-24 “kill”命令幫助信息
1.示例一
運(yùn)行“ps aux | grep gnome”命令查看當(dāng)前系統(tǒng)運(yùn)行的進(jìn)程名包含“gnome”的進(jìn)程,可以看到,pid為“2151”的則是系統(tǒng)自帶的“字典”應(yīng)用程序,如圖8-25所示,如果要將這個(gè)程序關(guān)閉,可以輸入命令“kill 2151”,則關(guān)閉了“字典”程序(從界面上消失),再輸入“ps aux | grep gnome”命令,查看“字典”程序已經(jīng)不存在,如圖8-26所示。
圖8-25 “ps aux | grep gnome”輸出信息
圖8-26 “kill 2151”、“ps aux | grep gnome”命令輸出信息
2.示例二
一個(gè)程序已經(jīng)徹底關(guān)閉,如果kill不加信號(hào)強(qiáng)度(signal)沒有辦法退出,這時(shí),最好的辦法就是加信號(hào)強(qiáng)度9,后面指出要?dú)⑺赖?#8220;僵尸”進(jìn)程PID,例如,需要關(guān)閉“Emacs”,通過“ps aux”命令,可以查看到“Emacs”的PID為“1938”,先需要強(qiáng)制關(guān)閉該程序,可以輸入“kill -9 1938”,如圖8-27所示,命令執(zhí)行完成以后,“Emacs”程序就會(huì)被關(guān)閉。
圖8-27 “kill -9 1938”強(qiáng)制終止進(jìn)程命令
3.示例三
當(dāng)然,還可以通過應(yīng)用killall命令來終止某一個(gè)程序或者進(jìn)程,如要結(jié)束“文本編輯器”程序,可以輸入“killall gedit”,回車執(zhí)行,如圖8-28所示,killall是通過命令空格正在運(yùn)行的程序名來結(jié)束某個(gè)程序的,如果想獲得更多的關(guān)于該命令的應(yīng)用信息,請(qǐng)使用前面介紹的“man”命令。
圖8-28 “killall gedit”終止文本編輯器命令
4.示例四
pkill和killall命令應(yīng)用方法差不多,也是直接關(guān)閉運(yùn)行中的程序。如果想關(guān)閉單個(gè)進(jìn)程,請(qǐng)用kill命令,如要結(jié)束“文本編輯器”程序,可以輸入“pkill gedit”,回車執(zhí)行,如圖8-29所示。pkill命令是通過命令空格正在運(yùn)行的程序名來結(jié)束某個(gè)程序的,如果想獲得更多的關(guān)于該命令的應(yīng)用信息,請(qǐng)使用前面介紹的“man”命令。
圖8-29 “pkill gedit”終止文本編輯器命令
(未完待續(xù))
版權(quán)聲明:51Testing軟件測(cè)試網(wǎng)及相關(guān)內(nèi)容提供者擁有51testing.com內(nèi)容的全部版權(quán),未經(jīng)明確的書面許可,任何人或單位不得對(duì)本網(wǎng)站內(nèi)容復(fù)制、轉(zhuǎn)載或進(jìn)行鏡像。51testing軟件測(cè)試網(wǎng)歡迎與業(yè)內(nèi)同行進(jìn)行有益的合作和交流,如果有任何有關(guān)內(nèi)容方面的合作事宜,請(qǐng)聯(lián)系我們。
相關(guān)鏈接:
精通軟件性能測(cè)試與LoadRunner最佳實(shí)戰(zhàn) 連載一
精通軟件性能測(cè)試與LoadRunner最佳實(shí)戰(zhàn) 連載二
精通軟件性能測(cè)試與LoadRunner最佳實(shí)戰(zhàn) 連載三
精通軟件性能測(cè)試與LoadRunner最佳實(shí)戰(zhàn) 連載四
精通軟件性能測(cè)試與LoadRunner最佳實(shí)戰(zhàn) 連載五
posted on 2013-07-03 11:20 順其自然EVO 閱讀(255) 評(píng)論(0) 編輯 收藏 所屬分類: loadrunner 、性能測(cè)試