性能測試監控工具nmon詳解和分析
1、命令安裝
1、查看liunx版本
版本x86_64_14i
目錄:cd /nmon/logs/
版本x86_64_14i
[root@localhost u06]# cd /
[root@localhost u06]#mkdir nmon
[root@localhost u06]#mkdir nmon/logs
[root@localhost nmon]#mv nmon_linux_14i.tar.gz nmon
[root@localhost nmon]# tar -zxvf nmon_linux_14i.tar.gz
[root@localhost nmon]# ./nmon_x86_64_sles11 //啟動
[root@localhost nmon]# cp nmon_x86_64_sles11 nmon
[root@localhost nmon]#cp nmon /bin/nmon
[root@localhost nmon]#cp nmon /usr/bin/nmon
[root@localhost nmon]#cp nmon /usr/local/bin/nmon
[root@localhost nmon]#nmon //就可以啟動監控程序 可以直接運行nmon
chmod 755 nmon.sh
crontab -l
crontab -e
*/5 * * * * /u06/nmon/nmon -s10 -c30 -f -m /u06/nmon/logs >/dev/null 2>&1
centos version 6.x service crond restart
centos version 7.x systemctl restart crond
ls logs/
2、NMON工具使用詳解
nmon所記錄的數據包含以下一些方面(也是我們在尋找問題過程中所關注的資源點):
● cpu占用率
● 內存使用情況
● 磁盤I/O速度、傳輸和讀寫比率
● 文件系統的使用率
● 網絡I/O速度、傳輸和讀寫比率、錯誤統計率與傳輸包的大小
● 消耗資源最多的進程
● 計算機詳細信息和資源
● 頁面空間和頁面I/O速度
● 用戶自定義的磁盤組
● 網絡文件系統
另外在AIX操作系統上,nmon還能監控到其他的一些信息,如異步I/O等。
3、下載安裝nmon
nmon的安裝步驟如下:
1)用root用戶登錄到系統中;
2)建目錄:#mkdir / nmon;
3)把nmon用ftp上傳到/test,或者通過其他介質拷貝到/ nmon目錄中;
4)執行授權命令:#chmod +x nmon。
3、nmon數據采集
3.1 數據采集
為了實時監控系統在一段時間內的使用情況並將結果記錄下來,我們可以通過運行以下命令實現:
#./ nmon -f -t -s 30 -c 180
n -f:按標准格式輸出文件:_YYYYMMDD_HHMM.nmon;
n -t:輸出中包括占用率較高的進程;
n -s 30:每30秒進行一次數據采集
n -c 180:一共采集180次
輸入命令回車后,將自動在當前目錄生成一個hostname_timeSeries.nmon的文件,如果hosname為nmon,生產的文件為:nmon _090308_1313.nmon。
通過sort命令可以將nmon結果文件轉換為csv文件:
# sort -A nmon _090308_1313.nmon > nmon _090308_1313.csv
執行完sort命令后即可在當前目錄生產nmon _090308_1313.csv文件。
(4)點擊Analyse nmon data按鈕,加載之前下載的nmon _090308_1313.csv文件。
5、監控結果圖
SYS_SUMM
CPU_ALL
CPU_SUMM
DISKBUSY
DISK_SUMM
MEM
NET
6、表字段分析
關鍵指標類型 |
關鍵指標名稱 |
關鍵指標含義 |
SYS_SUMM |
CPU% |
cpu占有率變化情況; |
IO/sec |
IO的變化情況; |
|
AAA |
AIX |
AIX版本號; |
cpus |
CPU數量; |
|
hardware |
被測主機處理器技術; |
|
host |
被測主機名; |
|
interval |
監控取樣間隔;(秒) |
|
kernel |
被測主機內核信息; |
|
CPU_ALL |
User% |
顯示在用戶模式下執行的程序所使用的 CPU 百分比; |
Sys% |
顯示在內核模式下執行的程序所使用的 CPU 百分比; |
|
Wait% |
顯示等待 IO 所花的時間百分比; |
|
Idle% |
顯示 CPU 的空閑時間百分比; |
|
CPU% |
CPU總體占用情況; |
|
DISKBUSY |
Disk %Busy Hostname |
執行間隔時間列表; |
hdisknn |
每個磁盤執行采樣數據;(磁盤設備的占用百分比) |
|
DISK_SUMM |
Disk total kb/s Hostname |
執行間隔時間列表; |
Disk Read kb/s |
每個磁盤執行采樣數據;(磁盤設備的讀速率) |
|
Disk Write kb/s |
每個磁盤執行采樣數據;(磁盤設備的寫速率) |
|
IO/sec |
每秒鍾輸出到物理磁盤的傳輸次數; |
|
NET |
read/write |
本sheet顯示系統中每個網絡適配器的數據傳輸速率(千字節/秒) |
JFSFILE |
JFS Filespace %Used Hostname |
執行間隔時間列表; |
file system/LV |
文件系統以及mount磁盤設備已使用空間百分比; |
|
JFSINODE |
JFS Inode %Used Hostname |
執行間隔時間列表; |
file system/LV |
文件系統以及mount磁盤設備的inode已使用空間百分比; |
|
MEM |
Memory Hostname |
執行間隔時間列表; |
Real Free % |
實際剩余內存百分比; |
|
Virtual free % |
虛擬剩余內存百分比; |
|
Real free(MB) |
實際剩余內存大小;(MB) |
|
Virtual free(MB) |
虛擬剩余內存大小;(MB) |
|
Real total(MB) |
實際內存總體大小;(MB) |
|
Virtual total(MB) |
虛擬內存總體大小;(MB) |
|
PAGE |
faults |
每秒的page faults(頁錯誤)數; |
pgin |
每秒鍾所讀入的頁數,包括從文件系統讀取的頁數 |
|
pgout |
每秒鍾所寫出的頁數,包括寫到文件系統的頁數 |
|
pgsin |
每秒鍾從頁面空間所讀取的頁數 |
|
pgsout |
每秒鍾寫到頁面空間的頁數 |
|
reclaims |
從nmon回收這項之前的10個,和vmstat報告的值是一樣的,代表了頁替換機制釋放的pages/sec的數量 |
|
scans |
掃描頁替換機制的pages/sec的數量,和vmstat報告的值是一樣的,頁替換在空閑頁數量到達最小值時初始化,在空閑到達最大值時停止 |
|
cycles |
周期 times/sec的數值,頁替換機制需要掃描整個頁表,來補充空閑列表。這和vmstat報告的cy數值一樣,只是vmstat報告的這個值是整形值,而nmon報告的是實型值 |
|
fsin |
分析器計算的數據為pgin-pgsin的圖形處理所用 |
|
fsout |
分析器計算的數據為pgout-pgsout的圖形處理所用 |
|
sr/fr |
分析器計算的數據為scans/reclaims的圖形處理所用 |
6、命令的操作
nmon 命令
以交互方式顯示本地系統統計信息並以記錄方式記錄系統統計信息。
交互方式:
nmon [ -h ]
nmon [ -s < seconds > ] [ -c < count > ] [ -b ] [ -B ] [ -g < filename > ] [ -k disklist ] [ -C < process1:process2:..:processN > ]
記錄方式:
nmon [ -f | -F filename | -x | -X | -z ] [ -r <<A href="http://publib.boulder.ibm.com/infocenter/aix/v6r1/topic/com.ibm.aix.cmds/doc/aixcmds4/nmon.htm#nmp-r"> runname > ] [ -t | -T | -Y ] [ -s seconds ] [ -c number ] [ -w number ] [ -l dpl ] [ -d ] [ -g filename ] [ -k disklist ] [ -C ] [ -G ] [ -K ] [ -o outputpath ] [ -D ] [ -E ] [ -J ] [ -V ] [ -P ] [ -M ] [ -N ] [ -W ] [ -S ] [ -^ ] [ -O ] [ -L ] [ -I percent ] [ -A ] [ -m <<A href="http://publib.boulder.ibm.com/infocenter/aix/v6r1/topic/com.ibm.aix.cmds/doc/aixcmds4/nmon.htm#nmp-di"> dir > ] [ -Z priority ]
在記錄方式下,僅指定 -f、-F、-z、-x 或 -X 標志的其中之一作為第一個參數。
nmon 命令顯示和記錄本地系統信息。此命令可以采用交互方式或記錄方式運行。如果指定 -F、-f、-X、-x 和 -Z 標志中的任何一個,那么 nmon 命令處於記錄方式。否則 nmon 命令處於交互方式。
nmon 命令以交互方式提供下列視圖:
系統資源視圖(使用 r 鍵)
進程視圖(使用 t 和 u 鍵)
AIO 進程視圖(使用 A 鍵)
處理器使用情況小視圖(使用 c 鍵)
處理器使用情況大視圖(使用 C 鍵)
共享處理器邏輯分區視圖(使用 p 鍵)
NFS 面板(使用 N 鍵)
網絡接口視圖(使用 n 鍵)
WLM 視圖(使用 W 鍵)
磁盤繁忙情況圖(使用 o 鍵)
磁盤組(使用 g 鍵)
ESS 虛擬路徑統計信息視圖(使用 e 鍵)
JFS 視圖(使用 j 鍵)
內核統計信息(使用 k 鍵)
長期處理器平均使用率視圖(使用 l 鍵)
大頁分析(使用 L 鍵)
調頁空間(使用 P 鍵)
卷組統計信息(使用 V 鍵)
磁盤統計信息(使用 D 鍵)
磁盤統計信息及圖形(使用 d 鍵)
內存和調頁統計信息(使用 m 鍵)
適配器 I/O 統計信息(使用 a 鍵)
共享以太網適配器統計信息(使用 O 鍵)
冗余檢查良好/警告/危險視圖(使用 v 鍵)
詳細信息頁統計信息(使用 M 鍵)
光纖通道適配器統計信息(使用 ^ 鍵)
在記錄方式下,此命令會生成 .nmon 文件。可以通過打開這些文件來直接進行查看,也可以使用后處理工具(例如,nmon 分析器)來查看。在記錄期間,nmon 工具會與 shell 斷開連接,以確保該命令即使在您注銷的情況下仍然繼續運行。
如果每次啟動 nmon 命令時使用同一組鍵,那么可將這些鍵放在 NMON shell 變量中。例如,可運行以下命令:
export NMON=mcd
然后運行 nmon 命令。
要從命令行停止 nmon 命令,請將 kill -USR2 與 nmon 進程標識配合使用。
要顯示 nmon 記錄的后台進程標識,請將 nmon 命令與 -p 標志配合使用。
要限制 nmon 命令列示的進程(聯機或至文件),可在從 NMONCMD0 至 NMONCMD63 的環境變量中設置程序名稱,或將 -C 標志與 cmd:cmd:cmd 參數配合使用。例如,可輸入以下命令:
nmon -C ksh:vi:syncd
要將 nmon 列示的磁盤限制為最多 64 個磁盤(僅限於聯機磁盤),請將 -k 標志與 diskname 參數配合使用。例如,可輸入以下命令:
nmon -k hdisk2,hdisk0,hdisk3
在記錄期間,nmon 工具會與 shell 斷開連接,以確保該命令即使在您注銷的情況下仍然繼續運行。如果使用“隨需應變”記錄設施觸發了記錄,情況並非如此。
在 nmon 中記錄或監視日志文件系統(JFS)統計信息可避免卸載文件系統,原因是收集統計信息時該文件系統在使用中。
在工作負載分區(WPAR)中,nmon 命令會顯示處理器和內存統計信息的全局值。余下值是特定於WPAR的。不能在WPAR中檢索以下統計信息,並且 nmon 屏幕不支持它們出現在WPAR中:
磁盤、磁盤 I/O 圖、磁盤繁忙情況圖、磁盤組
磁盤適配器
調頁空間
卷組
ESS/虛擬路徑
光纖通道適配器
VIOS 共享以太網適配器
可在交互方式下使用下列標志。
刷新屏幕之間的時間間隔。缺省值為 2 秒。 |
|
必須刷新屏幕的次數。 |
|
其中包含用戶定義的磁盤組的文件,可以使用 filename 參數來指定此文件。文件中的每一行以組名開頭。磁盤列表跟在組名后面,各個硬盤之間用空格分隔。該文件最多可包含 64 個磁盤組。硬盤可屬於各種磁盤組。 |
|
顯示黑白方式的視圖。 |
|
不要在視圖中包括框。缺省情況下該命令會顯示框。 |
|
顯示幫助信息。 |
|
僅報告磁盤列表中的磁盤。 |
在視圖中包括異步 I/O 部分。 |
|
指定此命令必須生成的快照數。缺省值為 10000000。 |
|
在視圖中包括磁盤服務時間部分。 |
|
跳過磁盤配置部分。 |
|
跳過 ESS 配置部分。 |
|
指定輸出使用電子表格格式。缺省情況下,此命令會生成系統數據的 288 個快照,兩次生成快照之間的時間間隔為 300 秒。輸出文件的名稱為 hostname_YYMMDD_HHMM .nmon 格式。 |
|
指定輸出使用電子表格格式,並且輸出文件的名稱為 filename。filename 參數指定輸出文件的名稱。 |
|
使用 filename 參數指定其中包含用戶定義的磁盤組的文件。文件中的每一行以組名開頭。磁盤列表跟在組名之后,磁盤之間用空格隔開。該文件最多可包含 64 個磁盤組。磁盤可屬於各種磁盤組。 |
|
使用格林威治標准時間(GMT)來代替當地時間。針對處理器視圖比較來自一台機器的多個LPAR的 nmon 文件但LPAR在不同時區中時,這樣做很有幫助。 |
|
指定命令忽略最繁忙進程統計信息時的進程閾值百分比。缺省百分比為 0。如果進程使用的處理器資源低於給定百分比,那么該命令不會保存最繁忙進程統計信息。 |
|
跳過 JFS 部分。 |
|
指定要記錄的磁盤的列表。 |
|
在記錄文件中包括 RAW 內核部分和LPAR部分。-K 標志會轉儲對應數據結構的原始數字。轉儲是可讀的,並且可在命令記錄數據時使用。 |
|
指定每一行上要列示的磁盤數。缺省情況下,每行列示 150 個磁盤。對於 EMC 磁盤,指定值 64。 |
|
包括大頁分析部分。 |
|
在命令將數據保存至文件之前切換目錄。 |
|
在記錄文件中包括 MEMPAGES 部分。MEMPAGES 部分會顯示對應每個頁大小的詳細內存統計信息。 |
|
在記錄文件中包括 NFS 部分。要收集 NFSv4 統計信息,請指定 -NN。 |
|
指定要將已記錄文件存儲至的文件名或目錄。 |
|
在記錄文件中包括共享以太網適配器(SEA)VIOS 部分。 |
|
在記錄文件中包括調頁空間部分。 |
|
指定寫至電子表格文件的 runname 字段的值。缺省情況下,此值為 hostname。 |
|
指定兩個連續的記錄快照之間的時間間隔(以秒計)。 |
|
在記錄文件中包括 WLM 部分以及子類。 |
|
在輸出中包括最繁忙進程。不能同時指定 -t、-T 或 -Y 標志當中的任意兩者。 |
|
在輸出中包括最繁忙進程,並將這些命令行參數保存至 UARG 部分。不能同時指定 -t、-T 或 -Y 標志當中的任意兩者。 |
|
包括磁盤卷組部分。 |
|
指定要記錄的時間戳記的大小(Tnnnn)。時間戳記記錄在 .csv 文件中。number 參數的值的范圍是 4 到 16。對於 NMON 分析器,請使用值 4 或 8。 |
|
在記錄文件中包括 WLM 部分。 |
|
指定持續時間為 1 天的可感電子表格記錄以用於容量規划。缺省情況下,每 900 秒完成一次記錄,一共完成 96 次。此標志相當於 -ft -s 900 -c 96。 |
|
指定持續時間為 1 小時的可感電子表格記錄以用於容量規划。缺省情況下,每 30 秒完成一次記錄,一共完成 120 次。此標志相當於 -ft -s 30 -c 120。 |
|
在記錄中包括最繁忙進程以及一起添加和記錄的同名命令。不能同時指定 -t、-T 或 -Y 標志。 |
|
指定持續時間為 1 天的可感電子表格記錄以用於容量規划。缺省情況下,每 900 秒完成一次記錄,一共完成 96 次。此標志相當於 -f -s 900 -c 96。 |
|
指定正在運行的 nmon 命令的優先級。值為 -20 時表示重要。值為 20 時表示不重要。只有 root 用戶才能指定負值。 |
|
包括光纖通道(FC)部分。 |
指定磁盤列表。 |
|
指定目錄。 |
|
指定每行上要列示的磁盤數。 |
|
指定包含所選磁盤組的文件。 |
|
指定刷新次數。 |
|
指定記錄次數。 |
|
指定處理器使用資源的百分比。 |
|
指定要運行的進程的優先級。 |
|
指定要運行的電子表格文件中的 runname 字段的值。 |
|
指定刷新快照的時間間隔(以秒計)。 |
|
指定輸出文件的路徑。 |