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工具采集系統信息的時間點

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM