性能測試中對 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都大了一些,但還是非常的小的。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章