1、nmon工具介紹:
nmon工具是linux系統下可以對服務器及系統性能進行監測,CPU信息、CPU占用、內存使用、網卡使用等。最大的好處是此工具會將結果以列表的形式或者是模擬圖形化的方式展示,不需要從繁瑣的數據結果中摳字眼。nmon 工具還可以將相同的數據捕獲到一個文本文件,便於以后對報告進行分析和繪制圖形。輸出文件采用電子表格的格式 (.csv)。
2、安裝nmon:
將nmon4aix_11e.tar.gz放入linux系統某目錄下,如:/opt下
1 [root@localhost opt]# tar –xvzf nmon4aix_11e.tar.gz --解壓縮壓縮文件 2 [root@localhost opt]# cd nmon4aix_11e --進入nmon目錄 3 [root@localhost nmon4aix_11e]# ./configure –prefix=/usr/local/nmon --預編譯工具程序 4 [root@localhost nmon4aix_11e]# make&make install --鏈接程序及安裝
到此安裝完畢
3、使用方法:
打開nmon,直接./nmon_x86_rhel52即可
以上界面,可以看到,按對應的按鍵查看相應的信息。
q : 停止並退出Nmon
h : 查看幫助信息
c : 查看 CPU 統計信息
m : 查看內存統計信息
d : 查看磁盤統計信息
k : 查看內核統計信息
n : 查看網絡統計信息
N : 查看 NFS 統計信息
j : 查看文件系統統計信息
t : 查看 Top 進程統計信息
V : 查看虛擬內存統計信息
v : 詳細輸出模式
例如:
如果你想查看 CPU 性能信息,可以直接按 c 鍵:
如果你想查看 Top 進程統計信息,可以直接按 t 鍵:
4、NMON后台監控系統性能並生成報表
數據采集:
運行帶 -f 標志的 nmon 命令。有關詳細信息,請參閱 nmon -h。但是作為示例,可以嘗試運行下面的 nmon 命令來,告知 nmon 創建文件,並每隔 30 秒的時間進行一次數據收集,共采集 180 次(共計 1.5 個小時):
nmon -f -s 10 -c 60
-f 表示生成的數據文件名中有時間;
-s 10 表示每 10 秒采集一次數據;
-c 60 表示采集 60 次,10*60=600 秒,
剛好是 10分鍾的數據,這樣運行一次這個程序就會生成一個采集 10分鍾數據的文件。該行命令將在當前目錄中創建輸出文件,其名稱為:<hostname>_date_time.nmon", hostname" 是這台主機的主機名。
例如:
1 [root@localhost source]# hostname 2 linux_test 3 [root@localhost source]# ./nmon -f -s 10 -c 60 4 [root@localhost source]# ps -ef | grep nmon 5 root 17815 1 0 08:22 pts/1 00:00:00 ./nmon -f -s 10 -c 60 6 root 17888 6977 0 08:22 pts/1 00:00:00 grep nmon 7 [root@localhost source]# ls linux_test_120724_0822.nmon 8 linux_test_120724_0822.nmon
當我們執行相關命令后,就在當前目錄生成了一個以本主機名linux_test開頭,以執行日期為規則,nmon結尾的文件,並且我們通過ps命令會看到相關的nmon進程,這里我們當10分鍾過去以后我們會發現相關nmon進程會消失的。
linux_test_120724_0822.nmon 就是我們所生成的數據文件,所有的信息都在linux_test_120724_0822.nmon記錄,而且我們通過more命令后發現都是我們看不懂的一些文本,這就需要我們把其轉化成我們能看懂的excel格式的文件。首先我們把linux_test_120724_0822.nmon文件導出到我們的windows本地。然后我們從http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser下載nmonanalyser軟件到windows本地。打開解壓縮文件后,我們會發現2個文件,一個是nmonanalyse的說明word格式的說明穩定,另一個是excel格式的nmonanalyse文件。
我們這里所需要的就是excel格式問文件,我們雙擊打開。
點解按鈕導入文本結果即可。
以下是效果的展示:
附錄:nmon分析文件各sheet含義
sheet名稱 |
sheet含義 |
SYS_SUMM |
系統匯總,藍線為cpu占有率變化情況,粉線為磁盤IO的變化情況; |
AAA |
關於操作系統以及nmon本身的一些信息; |
BBBB |
系統外掛存儲容量以及存儲類型; |
BBBC |
系統外掛存儲位置、狀態以及描述信息; |
BBBD |
磁盤適配器信息;(包含磁盤適配器名稱以及描述) |
BBBE |
包含通過lsdev命令獲取的系統設備及其特征,顯示vpaths和hdisks之間的映射關系; |
BBBG |
顯示磁盤組詳細的映射關系; |
BBBL |
邏輯分區(LPAR)配置細節信息; |
BBBN |
網絡適配器信息; |
BBBP |
vmtune, schedtune, emstat和lsattr命令的輸出信息; |
CPUnn |
顯示執行之間內CPU占用情況,其中包含user%、sys%、wait%和idle%; |
CPU_ALL |
所有CPU概述,顯示所有CPU平均占用情況,其中包含SMT狀態; |
CPU_SUMM |
每一個CPU在執行時間內的占用情況,其中包含user%、sys%、wait%和idle%; |
DGBUSY |
磁盤組每個hdisk設備平均占用情況; |
DGREAD |
每個磁盤組的平均讀情況; |
DGSIZE |
每個磁盤組的平均讀寫情況(塊大小); |
DGWRITE |
每個磁盤組的平均寫情況; |
DGXFER |
每個磁盤組的I/O每秒操作; |
DISKBSIZE |
執行時間內每個hdisk的傳輸塊大小; |
DISKBUSY |
每個hdisk設備平均占用情況; |
DISKREAD |
每個hdisk的平均讀情況; |
DISKWRITE |
每個hdisk的平均寫情況; |
DISKXFER |
每個hdisk的I/O每秒操作; |
DISKSERV |
本sheet顯示在每個收集間隔中hdisk的評估服務時間(未響應時間) |
DISK_SUMM |
總體disk讀、寫以及I/O操作; |
EMCBSIZE/FAStBSIZE |
執行時間內EMC存儲的傳輸塊大小; |
EMCBUSY/FAStBUSY |
EMC存儲設備平均占用情況; |
EMCREAD/FAStREAD |
EMC存儲的平均讀情況; |
EMCWRITE/FAStWRITE |
EMC存儲的平均寫情況; |
EMCXFER/FAStXFER |
|
EMCSERV/FAStSERV |
|
ESSBSIZE |
本sheet記錄在系統中每個vpaths下讀寫操作的平均數據傳輸大小 (blocksize) Kbytes |
ESSBUSY |
本sheet記錄使用ESS系統的每個vpaths下的設備繁忙情況 |
ESSREAD |
本sheet記錄在系統中每個vpaths下讀取操作的 data rate (Kbytes/sec) |
ESSWRITE |
本sheet記錄在系統中每個vpaths下寫入操作的 data rate (Kbytes/sec) |
ESSXFER |
本sheet記錄在系統中每個vpaths下每秒的IO操作 |
ESSSERV |
本sheet顯示在每個收集間隔中vpaths的評估服務時間(未響應時間) |
FILE |
本sheet包含nmon內核內部的統計信息的一個子集,跟sar報告的值相同 |
FRCA |
|
IOADAPT |
對於BBBCsheet每個IO適配器列表,包含了數據傳輸速度為讀取和寫入操作(千字節/秒)和I / O操作執行的總數量 |
JFSFILE |
本sheet顯示對於每一個文件系統中,在每個間隔區間正在被使用的空間百分比 |
JFSINODE |
本sheet顯示對於每一個文件系統中,在每個間隔區間正在被使用的inode百分比 |
LARGEPAGE |
本圖表顯示Usedpages和Freepages隨着時間的變化 |
LPAR |
|
MEM |
本sheet主圖上顯示空閑實存的數量 |
MEMUSE |
除 %comp參數外,本sheet包含的所有項都和vmtune命令的報告中一樣 |
MEMNEW |
本sheet顯示分配的內存片信息,分三大類:用戶進程使用頁,文件系統緩存,系統內核使用頁 |
NET |
本sheet顯示系統中每個網絡適配器的數據傳輸速率(千字節/秒) |
NETPACKET |
本sheet統計每個適配器網絡讀寫包的數量;這個類似於netpmon –O dd 命令 |
NFS sheets |
|
PAGE |
本sheet統計相關頁信息的記錄 |
PROC |
本sheet包含nmon內核內部的統計信息。其中RunQueue和Swap-in域是使用的平均時間間隔,其他項的單位是比率/秒 |
PROCAIO |
本sheet包含關於可用的和active的異步IO進程數量信息. |
TOP |
|
UARG |
|
WLM sheets |
|
ZZZZ |
本sheet自動轉換所有nmon的時間戳為現在真實的時間,方便更容易的分析 |
nmon分析文件詳細指標詳解
指標類型 |
指標名稱 |
指標含義 |
SYS_SUMM |
CPU% |
cpu占有率變化情況; |
IO/sec |
IO的變化情況; |
|
AAA |
AIX |
AIX版本號; |
build |
build版本號; |
|
command |
執行命令; |
|
cpus |
CPU數量; |
|
date |
執行日期; |
|
disks_per_line |
||
hardware |
被測主機處理器技術; |
|
host |
被測主機名; |
|
interval |
監控取樣間隔;(秒) |
|
kernel |
被測主機內核信息; |
|
ML |
維護等級; |
|
progname |
執行文件名稱; |
|
runname |
運行主機名稱; |
|
snapshots |
實際快照次數; |
|
subversion |
nmon版本詳情; |
|
time |
執行開始時間戳; |
|
user |
執行命令用戶名; |
|
version |
收集數據的nmon版本; |
|
analyser |
nmon analyser版本號; |
|
environment |
所用excel版本; |
|
parms |
excel參數設定; |
|
settings |
excel環境設置; |
|
elapsed |
生成excel消耗時間; |
|
BBBB |
name |
存儲磁盤名稱; |
size(GB) |
磁盤容量; |
|
disc attach type |
磁盤類型; |
|
BBBC |
hdisknn |
各個磁盤信息、狀態以及MOUNT位置; |
BBBD |
Adapter_number |
磁盤適配器編號; |
Name |
磁盤適配器名稱; |
|
Disks |
磁盤適配器數量; |
|
Description |
磁盤適配器描述; |
|
BBBE |
||
BBBG |
||
BBBL |
||
BBBN |
NetworkName |
網絡名稱; |
MTU |
網絡上傳送的最大數據包,單位是字節; |
|
Mbits |
帶寬; |
|
Name |
名稱; |
|
BBBP |
vmtune, schedtune, emstat 和 lsattr命令的輸出信息; |
|
CPUnn |
CPU nn |
執行間隔時間列表; |
User% |
顯示在用戶模式下執行的程序所使用的 CPU 百分比; |
|
Sys% |
顯示在內核模式下執行的程序所使用的 CPU 百分比; |
|
Wait% |
顯示等待 IO 所花的時間百分比; |
|
Idle% |
顯示 CPU 的空閑時間百分比; |
|
CPU% |
CPU總體占用情況; |
|
CPU_ALL |
CPU nn |
執行間隔時間列表; |
User% |
顯示在用戶模式下執行的程序所使用的 CPU 百分比; |
|
Sys% |
顯示在內核模式下執行的程序所使用的 CPU 百分比; |
|
Wait% |
顯示等待 IO 所花的時間百分比; |
|
Idle% |
顯示 CPU 的空閑時間百分比; |
|
CPU% |
CPU總體占用情況; |
|
Logical CPUs (SMT=on) |
||
CPU_SUMM |
CPU_SUMM |
CPU編號; |
User% |
顯示在用戶模式下執行的程序所使用的 CPU 百分比; |
|
Sys% |
顯示在內核模式下執行的程序所使用的 CPU 百分比; |
|
Wait% |
顯示等待 IO 所花的時間百分比; |
|
Idle% |
顯示 CPU 的空閑時間百分比; |
|
DGBUSY |
||
DGREAD |
||
DGSIZE |
||
DGWRITE |
||
DGXFER |
||
DISKBSIZE |
Disk Block Size Hostname |
執行間隔時間列表; |
hdisknn |
磁盤傳輸速度時間間隔采樣;(讀和寫的總趨勢圖) |
|
DISKBUSY |
Disk %Busy Hostname |
執行間隔時間列表; |
hdisknn |
每個磁盤執行采樣數據;(磁盤設備的占用百分比) |
|
DISKREAD |
Disk Read kb/s Hostname |
執行間隔時間列表; |
hdisknn |
每個磁盤執行采樣數據;(磁盤設備的讀速率) |
|
DISKWRITE |
Disk Write kb/s Hostname |
執行間隔時間列表; |
hdisknn |
每個磁盤執行采樣數據;(磁盤設備的寫速率) |
|
DISKXFER |
Disk transfers per second Hostname |
執行間隔時間列表; |
hdisknn |
每秒鍾輸出到物理磁盤的傳輸次數; |
|
DISKSERV |
||
DISK_SUMM |
Disk total kb/s Hostname |
執行間隔時間列表; |
Disk Read kb/s |
每個磁盤執行采樣數據;(磁盤設備的讀速率) |
|
Disk Write kb/s |
每個磁盤執行采樣數據;(磁盤設備的寫速率) |
|
IO/sec |
每秒鍾輸出到物理磁盤的傳輸次數; |
|
EMCBSIZE/FAStBSIZE |
||
EMCBUSY/FAStBUSY |
||
EMCREAD/FAStREAD |
||
EMCWRITE/FAStWRITE |
||
EMCXFER/FAStXFER |
||
EMCSERV/FAStSERV |
||
ESSBSIZE |
||
ESSBUSY |
||
ESSREAD |
||
ESSWRITE |
||
ESSXFER |
||
ESSSERV |
||
FILE |
iget |
在監控期間每秒鍾到節點查找例行程序的呼叫數 |
namei |
在監控期間每秒鍾路徑查找例行程序的呼叫數(sar -a ). |
|
dirblk |
在監控期間通過目錄搜索例行程序每秒鍾掃描到的目錄塊數 (sar -a) |
|
readch |
在監控期間通過讀系統呼叫每秒鍾讀出的字節數(sar -c) |
|
writech |
在監控期間通過寫系統呼叫每秒鍾寫入的字節數(sar -c) |
|
ttyrawch |
在監控期間通過TTYs每秒鍾讀入的裸字節數(sar -y ). |
|
ttycanch |
終端輸入隊列字符 . 對於aix Version 4或者更后的版本這個值總是0 |
|
ttyoutch |
終端輸出隊列字符. (sar -y ). |
|
FRCA |
||
IOADAPT |
Disk Adapter Hostname(KB/s) |
執行間隔時間列表; |
Disk Adapter_read |
磁盤適配器讀速率; |
|
Disk Adapter_write |
磁盤適配器寫速率; |
|
Disk Adapter_xfer-tps |
磁盤適配器傳輸速率;(該物理磁盤每秒的 IO 傳輸請求數量) |
|
JFSFILE |
JFS Filespace %Used Hostname |
執行間隔時間列表; |
file system/LV |
文件系統以及mount磁盤設備已使用空間百分比; |
|
JFSINODE |
JFS Inode %Used Hostname |
執行間隔時間列表; |
file system/LV |
文件系統以及mount磁盤設備的inode已使用空間百分比; |
|
LARGEPAGE |
||
LPAR |
||
MEM |
Memory Hostname |
執行間隔時間列表; |
Real Free % |
實際剩余內存百分比; |
|
Virtual free % |
虛擬剩余內存百分比; |
|
Real free(MB) |
實際剩余內存大小;(MB) |
|
Virtual free(MB) |
虛擬剩余內存大小;(MB) |
|
Real total(MB) |
實際內存總體大小;(MB) |
|
Virtual total(MB) |
虛擬內存總體大小;(MB) |
|
MEMUSE |
%numperm |
分配給文件頁的實際內存百分比 |
%minperm |
mixperm的缺省值約為20%的物理內存.通常會不斷的運行,除非vmtune或rmss命令中使用收集 |
|
%maxperm |
maxperm的缺省值約為80%的物理內存. 通常會不斷的運行,除非vmtune或rmss命令中使用收集 |
|
minfree |
空閑頁面數的最小值 |
|
maxfree |
空閑頁面數的最大值 指定的vmtune命令或系統默認 |
|
%comp |
分配給計算頁的內存百分比,NMON分析器計算這個值 計算頁是可被 page space支持的,包括存儲和程序文本段 他們不包括數據,可執行的和共享的庫文件 |
|
MEMNEW |
Process% |
分配給用戶進程的內存百分比 |
FSCache% |
分配給文件系統緩存的內存百分比 |
|
System% |
系統程序使用的內存百分比 |
|
Free% |
未被分配的內存百分比 |
|
User% |
非系統程序使用的內存百分比 |
|
NET |
read/write |
顯示系統中每個網絡適配器的數據傳輸速率(千字節/秒) |
NETPACKET |
reads/s |
統計每個適配器網絡讀包的數量 |
writes/s |
統計每個適配器網絡寫包的數量 |
|
NFS sheets |
||
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的圖形處理所用 |
|
PROC |
RunQueue |
運行隊列中的內核線程平均數(同sar -q中的runq-sz) |
Swap-in |
等待page in的內核線程平均數 (同sar -q中的swpq-sz) |
|
pswitch |
上下文開關個數 (同sar -w中的pswch/s) |
|
syscall |
系統調用總數.(同sar -c中的scall/s) |
|
read |
系統調用中read的數量. (同sar -c中的sread/s) |
|
write |
系統調用中write的數量. (同sar -c中的swrit/s) |
|
fork |
系統調用中fork的數量. (同sar -c中的 fork/s) |
|
exec |
系統調用中exec 的數量. (同sar -c中的 exec/s) |
|
rcvint |
tty接收中斷的數量. (同sar -y中的 revin/s) |
|
xmtint |
tty傳輸中斷的數量. (同sar -y中的 xmtin/s) |
|
sem |
IPC信號元的數量 創建,使用和消除). (同sar -m中的 sema/s) |
|
msg |
IPC消息元的數量 (發送和接收). (同sar -m中的 sema/s) |
|
PROCAIO |
||
TOP |
PID |
進程號 |
%CPU |
CPU使用的平均數 |
|
%Usr |
顯示運行的用戶程序所占用的CPU百分比 |
|
%Sys |
顯示運行的系統程序所占用的CPU百分比 |
|
Threads |
被使用在這個程序中的線程數 |
|
Size |
對於這個程序一次調用分配給數據段的paging space平均值 |
|
ResText |
對於這個程序一次調用分配給代碼段的內存平均值 |
|
ResData |
對於這個程序一次調用分配給數據段的內存平均值 |
|
CharIO |
通過讀寫系統調用的每秒字節數 |
|
%RAM |
此命令所使用的內存百分比 ((ResText + ResData) / Real Mem) |
|
Paging |
此進程所有page faults的總數 |
|
Command |
命令名稱 |
|
WLMClass |
此程序已分配的 Workload Manager superclass名稱 |
|
IntervalCPU |
詳細信息中顯示在時間間隔中所有調用命令所使用的CPU總數 |
|
WSet |
詳細信息中顯示在時間間隔中所有調用命令所使用的內存總數 |
|
User |
運行進程的用戶名 |
|
Arg |
包含完整的參數字符串輸入命令 |
|
UARG |
||
WLM sheets |
||
ZZZZ |
||
nmon關鍵指標列表
關鍵指標類型 |
關鍵指標名稱 |
關鍵指標含義 |
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的圖形處理所用 |