一、概述
監控,在檢查系統問題或優化系統性能工作上是一個不可缺少的部分。通過操作系統監控工具監視操作系統資源的使用情況,間接地反映了各服務器程序的運行情況。根據運行結果分析可以幫助我們快速定位系統問題范圍或者性能瓶頸點。
nmon是一種在AIX與各種Linux操作系統上廣泛使用的監控與分析工具,相對於其它一些系統資源監控工具來說,nmon所記錄的信息是比較全面的,它能在系統運行過程中實時地捕捉系統資源的使用情況,並且能輸出結果到文件中,然后通過nmon_analyzer工具產生數據文件與圖形化結果。
nmon所記錄的數據包含以下一些方面(也是我們在尋找問題過程中所關注的資源點):
● cpu占用率
●內存使用情況
●磁盤I/O速度、傳輸和讀寫比率
●文件系統的使用率
●網絡I/O速度、傳輸和讀寫比率、錯誤統計率與傳輸包的大小
●消耗資源最多的進程
●計算機詳細信息和資源
●頁面空間和頁面I/O速度
●用戶自定義的磁盤組
●網絡文件系統
另外在AIX操作系統上,nmon還能監控到其他的一些信息,如異步I/O等。
關於這個工具的更加詳細的說明請看IBM官方網站的說明:
1、nmon工具:
http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/
2、nmon analyser工具:
http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/
二、下載安裝nmon
如何獲取nmon呢?我們可以在IBM的官方網站上免費下載獲取,下載網址為:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon
下載頁面如下所示:
nmon的安裝步驟如下:
1)用root用戶登錄到系統中;
2)建目錄:
|
1
|
#mkdir /test
|
3)把nmon用ftp上傳到/test,或者通過其他介質拷貝到/test目錄中;
4)執行授權命令:
|
1
|
#chmod +x nmon
|
測試:
Nmon工具使用比較簡單,在nmon目錄下,輸入
|
1
|
.
/nmon
|
出現此畫面,說明已安裝成功。(這是AIX版本的畫面,其他版本畫面會稍有不同)
輸入c可顯示CPU的信息,“m”對應內存、“n”對應網絡,“d”可以查看磁盤信息;“t”可以查看系統的進程信息;“
以下為nmon的幫助頁面:
使用單鍵命令來查看您所需要的數據。例如,要獲取CPU、內存和磁盤統計信息,啟動nmon 並輸入:cm d;
若需獲取相關的幫助信息,按 h 鍵。
要需獲取附加的幫助信息,可以嘗試其他方法:
輸入 nmon -? 命令可以獲取簡短的詳細信息。
輸入 nmon -h 命令可以獲取完整的詳細信息。
三、nmon數據采集
1、數據采集
為了實時監控系統在一段時間內的使用情況並將結果記錄下來,我們可以通過運行以下命令實現:
|
1
|
#./ nmon -f -t -s30 -c 180
|
參數說明:
l-f:按標准格式輸出文件:<hostname>_YYYYMMDD_HHMM.nmon;
l-t:輸出中包括占用率較高的進程;
l-s30:每30秒進行一次數據采集
l-c180:一共采集180次
輸入命令回車后,將自動在當前目錄生成一個hostname_timeSeries.nmon的文件,nmon輸出文件的命名方式是服務器名_日期時間.nmon
特別說明:
該命令啟動后,會在nmon所在目錄下生成監控文件,並持續寫入資源數據,直至360個監控點收集完成——即監控1小時,這些操作均自動完成,無需手工干預,測試人員可以繼續完成其他操作。如果想停止該監控,需要通過“#ps–ef|grepnmon”查詢進程號,然后殺掉該進程以停止監控。
通過sort命令可以將nmon結果文件轉換為csv文件:
|
1
|
# sort -A hostname_timeSeries.nmon> hostname_timeSeries.nmon.csv
|
執行完sort命令后即可在當前目錄生產hostname_timeSeries.nmon.csv文件。
2、生成圖形化結果
為了分析nmon監控獲得的結果,IBM還提供了相應的圖形化分析工具nmon_analyser,通過nmonanalyser.xls工具可以把監控的結果文件轉換成excel文件,方便分析系統的各項資源占用情況。
nmon_analyser工具的下載:
http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmonanalyser
nmon analyser.xls工具的使用方法如下:
(1)打開nmonanalyser.xls工具;
(2)調整excel宏安全性:工具-宏-安全性
(如果報告以下宏的安全級別太高錯誤,則在“工具-- 宏--安全性”里把級別調低,然后重新打開文件)
(3)修改完后,確定-關閉nmonanalyser.xls,重新打開;
(4)點擊Analysernmon data 按鈕,選擇下載下來的.csv文件,然后就會轉化成.excel文件,生成圖形化的文件
以上就是nmon的簡單描述與使用介紹,大家可以根據自己所采集到的結果分析系統的情況。點擊在EXCEL工具下的標簽可以看見不同的性能報告,參考如下:
| 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命令與語法更加詳細的命令請看下面的頁面:
相關參考資料:
1、Nmon在IBM的官方網站
http://www.ibm.com/developerworks/wikis/display/WikiPtype/nmon
2、nmon for linux的官方網站
http://nmon.sourceforge.net/pmwiki.php
3、文章一:《nmon 性能:分析 AIX 和Linux 性能的免費工具》
http://www.ibm.com/developerworks/cn/aix/library/analyze_aix/
4、文章二:《nmon analyser——生成AIX 性能報告的免費工具》
http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/index.html:
說明:以上截圖來源網絡,但不影響理解和分析
本文出自 “Lee” 博客,請務必保留此出處http://leexide.blog.51cto.com/6459431/1260067







