精通軟件性能測試與LoadRunner最佳實戰 連載五
前面8.2.2小節向大家介紹了如何監控正在運行的應用和進程的一些方法,本節將介紹在進行性能測試時,為保證與被測試系統數據的準確性,如何關閉一些無用的應用和進程的方法。打開Windows的任務管理,選中要關閉的進程,然后單擊“結束進程”按鈕,彈出“任務管理器警告”對話框,單擊“是”則結束選定的進程,如圖8-8~圖8-9所示。
圖8-8 “Windows任務管理器”對話框信息
圖8-9 “任務管理警告”信息提示框
此外,還可以通過使用Windows的命令行來關閉運行在本地或遠程計算機上的所有任務的應用程序和服務列表,并帶有進程ID(PID),使用tasklist命令。為了幫助大家使用這個命令,可以輸入tasklist/?來查看該命令的幫助信息,顯示的信息如下所示:
taskkill [/S system [/U username [/P [password]]]] 描述: 參數列表: 篩選器: 注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 ‘*’。 注意: 遠程進程總是要強行終止,不管是否指定了 /F 選項。 例如: |
為了使大家對該命令的使用有更深刻的認識,這里給大家舉幾個例子進行說明。
1.示例一
如果應用Tasklist命令查到“Foxmail”應用的進程如
圖8-10所示,現在要終止“Foxmail.exe”這個應用進程,可以在控制臺執行“taskkill /im foxmail.exe”命令以后,顯示如圖8-11所示信息,當然也可以應用“taskkill/pid 2912”命令來關閉“Foxmail.exe”程序,如圖8-12所示。那么這兩條命令有什么區別呢?如果應用程序“TEST”打開了若干個進程,則“Taskkill/IM TEST.exe”命令將關閉該程序的全部進程;而“Taskkill/PID對應pid值”則只關閉該PID所對應的進程。
圖8-10 用Tasklist命令顯示Foxmail.exe進程的相關信
圖8-11 用Taskkill命令關閉Foxmail.exe進程的相關信息
圖8-12 用Taskkill命令關閉2912進程的相關信息
2.示例二
如果需要終止遠程計算機上的某個進程,可以執行命令“taskkill/s 192.168.0.102/u administrator/p beco/im winrar.exe”,這里要關閉的進程IP地址為“192.168.0.102”,因為訪問這臺遠程計算機需要用戶名和密碼,所以加入了“/p administrator/p beco”,“administrator”、“beco”為遠程計算機的用戶名和密碼,“/im winrar.exe”為要關閉的遠程計算機上的應用進程圖像名,命令執行完成后,顯示如圖8-13所示信息。命令執行完畢以后,可以查看遠程計算機的winrar應用就被關閉了。
圖8-13 用Taskkill命令關閉遠程計算機應用進程的相關信息
3.示例三
如果要同時關閉幾個進程實例,例如,啟動了兩個記事本程序和一個電驢程序應用,如圖8-14所示。接下來,運行tasklist命令查看所有的任務進程,如圖8-15所示信息,可以看到有3個應用進程:2個notepad.exe和1個emule.exe的圖像名。如果現在要關閉記事本和電驢程序應用,則可以執行命令“taskkill/im emule.exe/im notepad.exe”,執行完成后,顯示如圖8-16所示信息。
圖8-14 記事本和電驢程序
圖8-15 tasklist顯示所有進程信息
圖8-16 taskkill關閉記事本和電驢程序
4.示例四
如果需要批量關閉任務進程,可以使用條件過濾組合,即方便又快捷。這里以關閉記事本進程為例,從圖8-17可以看出,記事本的3個實例,pid分別為3544、3556、3568,這時,可以用命令“taskkill/f/fi"pid gt 3543"/fi"pid lt 3570"”來關閉這3個實例。其中命令行中的“gt”和“lt”分別代表“大于”和“小于”,即要關閉pid>3542且pid<3570的任務進程。
圖8-17 taskkill過濾參數的應用
8.2.4 Linux操作系統任務、進程監控技術介紹
Linux的發展潛力巨大,一方面,Linux在各行各業中的應用也得到了很好的推廣,它的應用已經非常成熟。國際上,如當今世界最大的搜索引擎公司Google應用了1萬多臺Linux服務器;在國內,電信、銀行、文化部、鐵路、電力、教育、民航等各大領域也應用了Linux。基于Linux內核的操作系統有很多,這里不給大家逐一介紹,關于Linux部分的樣例內容以RedHat 9為例,本書也將它作為講解的主要操作系統。像Windows操作系統一樣,Linux操作系統同樣可以對進程、CPU、內存、硬盤等進行監控,因為Linux是開源的,越來越多的組織機構和個人不斷地去完善、發展這個操作系統,可以說Linux各個方面不遜色于Windows操作系統。
在給大家介紹Linux進程監控之前,先了解一下有關Linux進程的一些基礎知識。
1.Linux進程概念
Linux進程中最知名的屬性就是它的進程號(Process Idenity Number,PID)和它的父進程號(parent process ID,PPID)。PID、PPID都是非零正整數。一個PID唯一地標識一個進程。一個進程創建新進程稱為創建了子進程(child process)。相反地,創建子進程的進程稱為父進程。所有進程追溯其祖先最終都會落到進程號為1的進程身上,這個進程叫做init進程。它是內核自舉后第一個啟動的進程。init進程的作用是扮演終結父進程的角色。因為init進程永遠不會被終止,所以系統總是可以確信它的存在,并在必要的時候以它為參照。如果某個進程在它衍生出來的全部子進程結束之前被終止,就會出現必須以init為參照的情況。此時那些失去了父進程的子進程就都會以init作為它們的父進程。
2.Linux進程在運行中的3種狀態
執行(Running)狀態:CPU正在執行,即進程正在占用CPU。
就緒(Waiting)狀態:進程已經具備執行的一切條件,正在等待分配CPU處理時間。
停止(Stoped)狀態:進程不能使用CPU。
3.理解Linux下進程的結構
Linux中一個進程在內存里由3部分的數據組成,就是“數據段”、“堆棧段”和“代碼段”,基于I386兼容的中央處理器都有上述3種段寄存器,以方便操作系統的運行,如圖8-18所示。
圖8-18 Linux進程的結構
代碼段是存放了程序代碼的數據,假如計算機中有數個進程運行相同的一個程序,那么它們就可以使用同一個代碼段。而數據段則存放程序的全局變量、常數以及動態數據分配的數據空間。堆棧段存放的就是子程序的返回地址、子程序的參數以及程序的局部變量。堆棧段包括進程控制塊PCB(Process Control Block)中。PCB處于進程核心堆棧的底部,不需要額外分配空間。
4.Linux進程的種類
Linux操作系統包括3種不同類型的進程,每種進程都有自己的特點和屬性。
● 交互進程:由一個Shell啟動的進程。交互進程既可以在前臺運行,也可以在后臺運行。
● 批處理進程:這種進程和終端沒有聯系,是一個進程序列。
● 監控進程:也稱守護進程,Linux系統啟動時啟動的進程,并在后臺運行。
(未完待續)
版權聲明:51Testing軟件測試網及相關內容提供者擁有51testing.com內容的全部版權,未經明確的書面許可,任何人或單位不得對本網站內容復制、轉載或進行鏡像。51testing軟件測試網歡迎與業內同行進行有益的合作和交流,如果有任何有關內容方面的合作事宜,請聯系我們。
相關鏈接:
posted on 2013-07-03 11:21 順其自然EVO 閱讀(220) 評論(0) 編輯 收藏 所屬分類: loadrunner