1. 程式人生 > >Jmeter系列(38)- 詳解效能監控工具 nmon

Jmeter系列(38)- 詳解效能監控工具 nmon

如果你想從頭學習Jmeter,可以看看這個系列的文章哦

https://www.cnblogs.com/poloyy/category/1746599.html

 

前言

  • 做效能測試,伺服器監控是至關重要的,前面也講了通過 ServerAgent 去監控伺服器
  • 這一篇博文將詳細講解 nmon 監控工具

 

nmon 官方介紹

  • nmon是一種在 AIX 與各種 Linux 作業系統上廣泛使用的監控與分析工具
  • 它能在系統執行過程中實時地捕捉系統資源的使用情況,記錄的資訊比較全面
  • 它可將伺服器系統資源耗用情況收集起來並輸出一個特定的檔案,並可利用 excel 分析工具(nmon analyser)進行資料的統計分析

 

nmon 可監控的資料型別

  • CPU使用率
  • 記憶體使用情況
  • 磁碟介面卡
  • 檔案系統中的可用空間
  • 頁面空間和頁面速度
  • 非同步I/O,僅適用於AIX
  • 網路檔案系統(NFS)
  • 磁碟 I/O 速度、傳輸和讀/寫比率
  • 伺服器詳細資訊和資源
  • 核心統計資訊
  • 消耗資源最多的程序
  • 執行佇列資訊

 

nmon 特點

  1. nmon 執行不會佔用過多的系統資源,通常情況下CPU利用率不會超過 2%
  2. 功能強大,監控資料型別全面
  3. 結合grafana之類的儀表圖,可以更直觀的實時展示所監控的資料
  4. 移植性、相容性較好
  5. 無人值守監控
  6. 可以實時檢視監控結果,也可以測試結束後本地檢視監控結果

 

nmon 在做效能測試時的劣勢

不能像 ServerAgent 一樣整合到 Jmeter 中檢視監控結果

 

Linux 下安裝並執行 nmon

檢查安裝環境

# 檢視作業系統的資訊
uname -a 

# 檢視linux發行版本 
lsb_release -a

 

下載 nmon

方式一

官方地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download

通過 FTP 上傳到伺服器目錄下

 

方式二

伺服器直接敲命令列

wget http://sourceforge.net/projects/nmon/files/nmon16e_mpginc.tar.gz 

這種方式無法下最新版的

 

百度雲下載連結

包含了 nmon 安裝包和分析資料工具包

連結:https://pan.baidu.com/s/1WHmlf-Em3FfKbUUa_GWi6A 提取碼:w6gy

 

解壓

tar -zxvf nmon16m_helpsystems.tar.gz 

 

檢視解壓後的檔案

 

執行 nmon

我的系統是 x86_64 centos8,敲

./nmon_x86_64_centos8

 

常用 nmon 快捷命令

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

按多個快捷命令可以同時顯示多項監控結果哦

 

nmon 命令列引數

啟動 nmon 時,也可以指定一些引數

引數 作用
-f 監控結果以檔案形式輸出,預設:機器名_日期_時間.nmon
-F 和 -f 一樣作用,不過要指定輸出檔名
-s 取樣頻率,單位秒
-c 取樣次數
-m nmon 檔案儲存的目錄
-T 顯示資源佔用率高的程序

命令列栗子

./nmon -f -t -s 10 -c 6 -m /data/nmon

每 10s 採集一次系統資源資料,共採集 6 次(1 min 內收集 6 次),將最終 nmon 檔案生成在 /data/nmon 目錄下

將這個 .nmon 檔案傳輸到本地,用於後續的結果分析

 

重點

  • 一般來說不建議對穩定性測試(壓力測試)使用 nmon 監控,因為生成的 nmon 檔案超過10M時,分析工具會由於記憶體不足導致報錯
  • 如果必須進行的話,建議加大采樣頻次,降低取樣次數(低於330次)

 

檢視 nmon 監控結果

nmon_analyser 介紹

  • nmon 監控捕獲的資訊,一般用 nmon_analyser 來進行分析
  • nmon_analyser 由 IBM 提供, 使用 excel 的巨集命令分析載入生成 excel 圖表,展示資源佔用的各項資訊

 

下載nmon_analyser 

官方:http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser

百度雲連結:https://pan.baidu.com/s/1WHmlf-Em3FfKbUUa_GWi6A 提取碼:w6gy

 

解壓後發現有兩個檔案

  • psd:說明文件
  • xlsm:巨集檔案,分析工具

 

開啟 nmon analyser v66.xlsm

記住一定要通過 office 或者 wps 用 excel 的方式開啟哦,且需要啟動了巨集

 

解決巨集啟動失敗的情況

 

開啟 .nmon 檔案

點選 Analyze nmon data,選擇 nmon 檔案

 

檢視監控結果資料

 

nmon 監控結果圖表分析

分析結果檔案為一個excel表格,裡面分為 SYS_SUMM、CPU_ALL、MEM、DISK_SUMM 等多個標籤頁,每個標籤頁都有該主題下監控的明細資料和對應的統計圖表

每個標籤頁都展示了對某一指標如CPU、記憶體、網路、I/O的詳細監控資料

 

系統彙總介面:SYS_SUMM

頁面顯示項

  • 主機名
  • 執行日期
  • 系統 cpu 使用情況(藍線)
  • 系統 I/O 情況(粉紅線)
  • 左縱軸為系統 cpu(user%+sys%)使用率
  • 橫軸為執行時長
  • 右縱軸為系統磁碟傳輸(Disk xfers)
  • 座標下側為統計資訊:系統 I/O 情況(一個採集間隔內的平均值、最大值、出現最大值的時間),系統CPU使用情況等

引數

說明

Avg disk tps during an interval

採集間隔內磁碟平均I/O次數該值等於Sheet DISK_SUMM中IO/sec列的平均值

Max disk tps during an interval

採集間隔內磁碟最大I/O次數該值等於Sheet DISK_SUMM中IO/sec列的最大值

Max disk tps interval time

顯示磁碟最大I/O所在時間點

Total number of Mbytes read

採集間隔內磁碟讀的總兆位元組數

Total number of Mbytes written

採集間隔內磁碟寫的總兆位元組數

Read/Write Ratio

讀寫比率

User%

採集間隔內所有CPU在User Mode下的Time佔比(Avg、Max)

Sys%

採集間隔內所有CPU在System Mode下的Time佔比(Avg、Max)

Wait%

採集間隔內所有CPU處於空閒且等待I/O完成的時間比例(Avg、Max)

Idel%

採集間隔內所有CPU處於空閒Time的佔比(Avg、Max)

CPU%

CPU總體佔用情況(Avg、Max)

重點

  • 如果一個CPU被充分使用,CPU佔用時間配比應為User%(65-70%),Sys%(30-35%),Idel%(0-5%)
  • 如果 Sys% 佔比過大說明系統程序本身佔領大部分 cpu 資源,可考慮系統是否存在過多殭屍程序或者系統程序存在死迴圈等原因
  • CPU Wait% 佔比過大說明可能 IO 或記憶體方面存在瓶頸,可能是由於記憶體不夠而引起頻繁的的資料交換

 

系統資訊:AAA

資訊主要包括:執行命令,主機CPU數,作業系統核心版本資訊,主機名等資訊

 

系統詳細資訊:BBBP

頁面資訊主要包括:作業系統版本,主機磁碟資訊,主機CPU型號、主頻資訊,記憶體資訊,網絡卡資訊等

 

CPU使用情況:CPU_ALL,CPU_SUMM,CPU001...

包括主機 CPU 使用情況彙總以及每個 CPU 的執行情況。

此處重點關注 CPU_ALL 頁面

CPU_ALL 頁面可以看到如下圖的CPU整體上在每個監控點的資料,包括 User%、Sys%、Wait%、Idle%、Steal%、CPU% 以及 CPUs( cpu 個數)及對應圖表

 

CPU-ALL

引數說明

引數 說明
CPU Total 執行間隔時間列表
User% 採集間隔內所有CPU在User Mode下的Time佔比(Avg、Max)

Sys%

採集間隔內所有CPU在System Mode下的Time佔比(Avg、Max)
Wait% 採集間隔內所有CPU處於空閒且等待I/O完成的時間比例(Avg、Max)
Idel% 採集間隔內所有CPU處於空閒Time的佔比(Avg、Max),此值和User%,Sys%,Wait%,Steal%之和等於1
CPU% CPU總體佔用情況,這個值通常等於User%+Sys%
CPUs CPU核數,即作業系統是多少核的

 

磁碟讀寫情況

共有六個標籤可檢視磁碟情況

  • DISK_SUMM
  • DISKBSIZE
  • DISKBUSY
  • DISKREAD
  • DISKWRITE
  • DISKXFER

磁碟的讀、寫及I/O統計資訊,系統各磁碟分割槽的讀寫情況。此處重點關注 DISK_SUMM 即可

 

DISK_SUMM 

DISK_SUMM按採集時間顯示所有磁碟和分割槽的Read/Write的速率(KB/s)和所有磁碟和分割槽的I/O率。

 

引數說明

引數 說明
Disk total KB/s 執行間隔時間列表
Disk Read KB/s 採集間隔內磁碟裝置的讀速率
Disk Write KB/s 採集間隔內磁碟裝置的寫速率
IO/sec 採集間隔內磁碟整體平均每秒IO數

 

記憶體情況:MEM

引數說明

引數 說明
memtotal 實體記憶體總大小,單位MB
swaptotal 虛擬記憶體(即交換空間)的總大小
memfree 剩餘實體記憶體大小
swapfree 剩餘虛擬記憶體大小
cached 實體記憶體中被cache佔用的快取大小
active 在活躍使用中的記憶體大小
buffers 檔案系統緩衝區的大小
swapcached 虛擬記憶體中被cache佔用的快取大小
inactive 不常使用的記憶體大小

 

系統網路情況:NET,NETPACKET

反映系統的網路執行情況,系統各個網路介面卡讀寫的資料包數

NET頁面顯示系統中每個網路介面卡的資料傳輸速率(千位元組/秒)

 

引數說明

引數 說明
Network I/O 執行間隔時間列表
Total-Read 網路介面卡每秒接收的資料包總大小(KB/s)
Total-Write(-ve) 網路介面卡每秒傳送的資料包總大小(KB/s)

 

系統程序:PROC

反映系統執行執行緒及等待切換的執行緒平均數

 

採集時間:ZZZZ

記錄nmon工具採集系統資訊的時間點

&n