Linux下Jmeter+nmon+nmon analyser實現效能監控及結果分析

半醉半醒半浮生發表於2020-07-02

一、概述

  前段時間講述了Jmeter利用外掛PerfMon Metrics Collector來監控壓測過程中伺服器資源的消耗,一個偶然機會,我發現nmon這個

工具挺不錯,和Jmeter外掛比起來,nmon記錄的資訊更加全面一些。

  nmon,一款開源效能監控工具,用於監控linux系統的資源消耗資訊,並能把結果輸出到檔案中,然後通過nmon_analyser工具產生

資料檔案與圖形化結果。

二、nmon及nmon analyser的下載安裝

  nmon下載地址:http://nmon.sourceforge.net/pmwiki.php

  nmon analyser下載地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser

  nmon根據自己系統版本下載對應的安裝包,本次測試使用的是 nmon16m_helpsystems.tar.gz ,nmon analyser下載最新的安裝包,

本次測試使用的是 nmon_analyser_v66.zip 。

  1.將下載的nmon安裝包上傳到Linux新建目錄並解壓  

[test@node06 ~]$ cd /usr/local
[test@node06 local]$ mkdir nmon
[test@node06 local]$ cd nmon 
[test@node06 nmon]$ tar -zxvf nmon16m_helpsystems.tar.gz

  2.根據自己系統的版本,給命令賦予可執行許可權

1 [test@node06 nmon]$ cat /etc/redhat-release 
2 CentOS release 6.9 (Final)
3 [test@node06 nmon]$ chmod +x nmon_x86_64_centos6

  3.在命令列輸入 ./nmon_x86_64_centos6 即可開啟nmon介面

  

 在上面的互動式視窗中,可以使用nmon 快捷鍵來顯示不同的系統資源統計資料:

  • q : 停止並退出 Nmon
  • h : 檢視幫助
  • c : 檢視 CPU 統計資料
  • m : 檢視記憶體統計資料
  • d : 檢視硬碟統計資料
  • k : 檢視核心統計資料
  • n : 檢視網路統計資料
  • N : 檢視 NFS 統計資料
  • j : 檢視檔案系統統計資料
  • t : 檢視高耗程式
  • V : 檢視虛擬記憶體統計資料
  • v : 詳細模式

 此時,我們可以通過快捷鍵來調取關心的系統資源進行顯示,該種方式顯示資訊實時性強,能夠及時掌握系統承受壓力下的執行情況。

三、配置nmon的環境變數

  完成以上的配置後,已經可以正常使用nmon了。但是,大家有沒有發現一個問題,那就是我們想使用nmon時必須找到該命令

的詳細路徑才能使用,這樣就很不方便了。此時,我們需要將nmon的命令新增到系統環境變數中去,以後我們就可以在任何地方

使用該命令。

  1.修改啟動檔名稱,讓名稱簡單化,修改完成執行一次試試

[test@node06 nmon]$ mv nmon_x86_64_centos6 nmon
[test@node06 nmon]$ ./nmon

  2.在命令列輸入 vim /etc/profile ,將以下內容貼上到文字末尾,路徑要改為自己的安裝路徑

PATH=$PATH:/usr/local/nmon
export PATH

  3.在命令列輸入 source /etc/profile 使配置生效,此時,可以在任意目錄執行 nmon 命令來啟動nmon。

四、使用nmon監控Jmeter壓測期間的系統資源消耗情況

  1.在nmon目錄下新建logs資料夾,用來存放監控檔案

[test@node06 ~]$ cd /usr/local/nmon/
[test@node06 nmon]$ mkdir logs

  2.在命令列輸入執行命令 nmon -s 1 -c 80 -f -m /usr/local/nmon/logs 

引數說明:
-s 1     每隔n秒抽樣一次,這裡為1秒
-c 80    取出多少個抽樣數量,這裡為80,即監控=1*80/60=1分鐘20秒
-f       按標準格式輸出檔名稱:<hostname>_YYMMDD_HHMM.nmon
-m       指定監控檔案的存放目錄,-m後跟指定目錄,如果不指定目錄會在該命令的源目錄下生成相應的監控檔案

  此命令啟動後,會在我們指定的目錄下生成監控檔案,並持續寫入資源資料,直至80個監控點收集完成。在此期間,測試人員

不需要去手動干預。如果想停止監控,查詢程式號,然後殺死該程式即可。

[test@node06 ~]$ ps -ef|grep nmon
test      8863     1  0 17:05 pts/1    00:00:00 nmon -s 1 -c 120 -f -m /usr/local/nmon/logs/
test      9111 25160  0 17:07 pts/1    00:00:00 grep nmon
[test@node06 ~]$ kill 8863
-bash: kill: (8863) - No such process

  這裡因為nmon已執行結束,所以當我kill的時候會提示 No such process 。

  3.執行Jmeter指令碼,直至指令碼執行結束

  本次壓測只為了講述使用流程,測試結果中TPS不具實際意義,為避免不必要的爭議,這裡將其馬賽克了。

五、檢視和分析壓測結果

  1.將生成的監控檔案下載到本地

  2.將本地的 nmon_analyser_v66.zip 解壓,解壓後的資料夾內有.pdf和.xlsm兩個檔案,我們開啟.xlsm檔案。

 

  3.點選Analyse nomn data按鈕,將下載到本地的監控檔案新增進去,最後會生成一個.xlsx檔案,這個檔案裡就是我們需要的資料包告。

  注意:nmon analyser需要藉助Excel的巨集,WPS預設沒有安裝巨集,即使安裝了外掛也容易出現異常情況,建議使用Microsoft Excel工作表。

  巨集語言 Visual Basic for Application(VBA). Visual Basic是windows環境下開發應用軟體的一種通用程式設計語言,功能強大,簡便易

用。VBA是它的一個子集,可以廣泛地應用於Microsoft公司開發的各種軟體中,例如Word、Excel、Access等。

  4.需要關注的一些資料

  1)CPU_ALL,是伺服器cpu使用率的詳細資料。

 

  User%:顯示在使用者模式下執行的程式所使用的 CPU 百分比

  Sys%:顯示在核心模式下執行的程式所使用的 CPU 百分比

  Wait%:顯示等待 IO 所花的時間百分比

  Idle%:顯示 CPU 的空閒時間百分比

  有效行:由於nmon啟動時間未必是應用平穩的時間,同時nmon監控時間段也許比應用施壓的要長。所以nmon的結果裡常常存在

一些明顯不合理的資料,比如前幾次結果的CPU等佔用明顯低於中段的平均資料,或者後面幾次取樣結果很小,對於這樣的資料我們

在分析的時候要予以過濾。

  2)MEM,是伺服器記憶體使用率的概況。

  

  在MEM表裡面使用如下公式計算出每行的記憶體使用率並進行取平均:

      (Memtotal - Memfree - cached - buffers)/Memtotal  * 100即( =(B2-F2-K2-N2)/B2*100)

  通過分析記憶體使用率的趨勢,可定位是否記憶體洩露情況。

  有人看到記憶體使用率是99%,就認為記憶體用滿了,並沒有區分記憶體分頁是什麼型別,這樣武斷的說記憶體用滿了是不科學的。在AIX上

主要關注的是計算記憶體佔整個實體記憶體的百分比,linux上主要關注的是active記憶體佔整個實體記憶體的百分比。

  3)Disk_SUMM,總體disk讀、寫以及I/O操作

  

  Disk Read kb/s 每個磁碟執行取樣資料;(磁碟裝置的讀速率)

  Disk Write kb/s 每個磁碟執行取樣資料;(磁碟裝置的寫速率)

  IO/sec 每秒進行的IO數(一次IO就是控制操作一次讀或寫,IO塊就是讀或寫的大小),圖中為上方黑色的線,報告中寫的是這個引數的值

  4)NET,網路

  Total read 每秒接收到的千位元組的數目,如圖藍色部分

  Total write 每秒傳送的千位元組的數目,如圖橙色部分

  網路=Total read-Total write

  網路的指標一般要根據裝置來確定,百兆網路卡的意思是每秒能夠傳輸的網路流量是100Mbps,即最大的下載速度是12.5MB/s,一般伺服器是千兆網路卡,即125MB/s

 

參考資料:  

  nmon 效能:分析 AIX 和 Linux 效能的免費工具

  https://www.ibm.com/developerworks/cn/aix/library/analyze_aix/index.html  

  nmon analyser----生成 AIX 效能報告的免費工具

  https://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/index.html

相關文章