1. 程式人生 > >效能測試中對 linux 資源監控常用工具nmon,dstat,jmeter-plugin橫評

效能測試中對 linux 資源監控常用工具nmon,dstat,jmeter-plugin橫評

前言:nmon,dstat是linux上兩款常用的資源監控工具,當然我們可以選擇用top,vmstat,ifstat,iostat等命令來了解想要了解的資源使用情況,但是工具的使用能讓我們更方便快捷的掌握這些資訊;另外,在用jmeter做效能測試時,我們還可以使用jmeter外掛,來對linux伺服器的資源使用情況進行監控,但是這三者到底誰更好用呢,分別有什麼優缺點,筆者打算從以下幾方面做個對比測試:

一、安裝難易性

二、使用難易性及結果報告

三、執行時對系統資源的消耗

測試環境:CentOS Linux release 7.3.1611 (Core) 

一、安裝難易性

1.dstat的安裝

執行:yum -y install dstat,即可。

2.nmon的安裝

根據系統的髮型版本及CPU位數選擇相應的壓縮包下載,下載後解壓縮即可。詳情參考筆者的另一篇部落格:http://blog.csdn.net/u010798968/article/details/74932124

3.jmeter plugin的安裝

3.1.在官網下載jmeter.zip包:https://archive.apache.org/dist/jmeter/binaries/,這裡建議下載低一兩個版本的包,更穩定,已經安裝過jmeter的童鞋可忽略這一步。

3.2.在官網下載jmeter外掛的管理擴充套件包:https://jmeter-plugins.org/install/Install/,下載後放在剛剛解壓縮的jmeter包的lib/ext目錄下

3.2.1.下載完成後,執行jmeter的bin目錄下的jmeter.bat執行,點選主視窗的選項--Plugins Manager:

3.2.2.進入外掛管理視窗,勾選PerfMon,點選右下角安裝按鈕即可,安裝好後jmeter會自動重啟。並且可以看到jmeter的lib及lib/ext目錄下新增了PerfMon的依賴包。

3.3.在官網下載jmeter的代理伺服器:https://jmeter-plugins.org/wiki/PerfMonAgent/

下載後傳到linux伺服器,解壓縮即可。

以上,很顯然dstat的安裝是最簡單的,nmon相對簡單,jmeter外掛安裝是最麻煩且耗時的。

二、使用難易性及結果報告

1.dstat的使用

執行dstat,預設顯示cpu,磁碟io,網路io,系統記憶體分頁,系統中斷次數及上下文切換次數,更多命令可自行dstat --help檢視。

並且該命令執行後會持續採集這些資訊,按Ctrl+c停止。

執行dstat --output 可生成csv格式的記錄檔案。

2.nmon的使用

nmon的使用也較簡單,詳情參考筆者的另一篇部落格:http://blog.csdn.net/u010798968/article/details/74932124

3.jmeter外掛的使用

3.1在linux伺服器進到ServerAgent解壓縮的目錄,執行./startAgent.sh,啟動代理伺服器,如下圖,停止直接Ctrl+c即可。

預設埠為4444,修改埠vim startAgent.sh,新增埠號即可,注意修改埠之前先看下要用的埠是否已經在使用,lsof -i:埠號 ,如圖:

3.2新增監聽器:

填寫linux伺服器IP,埠號,選擇要監控的資訊即可:

執行測試,會自動將選擇的監控資訊生成圖表:

另外,做效能測試時,一般是使用非GUI執行:cmd 下jmeter -n -t XXX.jmx,在設定監聽器時,把測試結果儲存到檔案即可,執行完後,在該監聽器中開啟該測試結果:

以上,客觀上來講nmon的學習成本是最小的,dstat適中,需要記住各種指令,jmeter plugin稍微麻煩點,但是對於新手來說,GUI相比命令列還是更直觀簡便的。

三、執行時對系統資源的消耗

主要考慮伺服器資源低消耗時(即無其他程序搶佔資源)和伺服器資源高消耗時(大量程序搶佔資源),這些監控程序對伺服器資源的消耗。

a.伺服器無資源搶佔

1.dstat執行時對系統資源的消耗

執行dstat,再找到dstat的程序:

再用top指令檢視其資源使用情況,觀察一段時間,發現其對cpu和記憶體的消耗維持在0.3%和0.4%,可以說是非常小的。

2.執行nmon,找到其程序:

檢視其資源消耗,觀察一段時間,發現其對cpu和記憶體的消耗維持在0.0%和0.3%,比dstat還小。

3.執行jmeter ServerAgent,找到其程序:

觀察其資源消耗:

以上,在沒有資源搶佔的情況下,三者對cpu和記憶體的消耗都非常的小,雖然jmeter plugin因為其本身是個java程序,對記憶體消耗比dstat和nmon都大了一些,但還是非常的小的。