1 NMON部署
1.1工具簡介
Nmon是一款廣泛使用在Aix與Linux操作系統上的監控與分析工具,它記錄的信息非常全面,並支持生成數據文件與圖形化結果。
1.2 部署環境要求
無
支持廣泛:
操作系統(Red Hat, SUSE, Ubuntu, Fedora, OpenSUSE等)
平臺 (Power, Mainframe, arm, x86 or x86_64)
1.3 安裝方法
Nmon工具安裝非常簡單,具體步驟如下:
下載不同AIX和LINUX版本對應的nmon
將NMON放在服務器文件夾中
給NMON賦予可執行權限:chmod +x nmon
運行NMON:./nmon
可從官網或SVN獲取工具:
2 NMON使用
2.1 NMON監控內容
Nmon能提供的監控內容非常全面,其中包括:
CPU使用率
內存使用情況
磁盤I/O速度、傳輸和讀寫比率
文件系統的使用率
網絡I/O速度、傳輸和讀寫比率、錯誤統計率與傳輸包的大小
消耗資源最多的進程
計算機詳細信息和資源
用戶自定義的磁盤組
網絡文件系統
2.2 NMON使用方法
NMON提供了靈活的監控方法,既可以進行實時監控,也可以後臺監控,其中後臺監控會將監控信息寫入文件,配合使用nmon analyser解析數據文件、生成圖形化監控結果。
2.2.1 實時監控
Nmon安裝後,切換到工具目錄,執行”./nmon”命令(名稱以實際文件名而定,64位平臺文件名爲nmon_linux_64)即可運行程序。打開交互式窗口後,使用快捷鍵可以查看系統資源使用情況,如按“c”可以查看CPU相關信息;按“d”可以查看磁盤信息;按“t”可以查看系統進程信息,“m”、“n”分別對應內存和網絡;按“H”可以查看幫助信息。該監控方法實時性強,可以及時瞭解系統的運行情況。
部分資源監控操作舉例如下:
1) 運行./nmon_linux_64,即可進入nmon實時監控界面,如圖所示:
2) 按 ”c” 查看CPU使用情況:
3) 按 ”m” 查看內存使用情況:
4) 按 ”d” 查看磁盤IO使用情況:
5) 按 ”n” 查看網絡使用情況:
2.2.1 後臺監控
在性能測試中,通常會藉助nmon對測試期間的系統資源進行跟蹤記錄並寫入文件,以便後續分析,常用監控命令如下:
./nmon_linux_64 -s 10 -c 60 -f -m /home/nmon
其中各參數表示:
-s : 每隔多少秒抽樣一次,單位是秒,上述命令配置是10s;
-c :採樣次數,上述命令配置是60,即監控總時長爲10*60=600秒;
-f :按標準格式輸出文件hostname_YYYYMMDD_HHMM.nmon;
-m : 指定文件保存路徑;
該命令執行後,會在/home/nmon目錄下生成以hostname_YYYYMMDD_HHMM.nmon格式命名的監控文件,並將監控數據寫入文件,nmon進程會在監控完成後自動退出,如需強制退出,先查找nmon進程 “ps –ef | grep nmon”,然後kill掉即可。
2.3 NMON監控結果分析
通過後臺監控方式生成的.nmon文件,實際上是文本文件,可以直接用記事本或其他文本編輯工具打開,但可視化效果不好,也不方便分析。因此,通常使用nmon analyser對nmon文件進行解析,生成帶圖表信息的xlsx格式文件。
2.3.1 解析nmon文件
Nmon文件解析工具是nmon analyser,該工具可以從以下地址獲取:
官網地址:https://www.ibm.com/developerworks/aix/library/au-nmon_analyser/
獲取工具後,無需安裝,進入工具目錄,雙擊nmon analyser vxx_x.xlsm格式的文件,即可打開工具界面,如圖所示:
如果界面提示安全警告,“宏已被禁用”,點擊【啓用內容】即可,如上圖紅框內容所示。此時,點擊【Analyze nmon data】,在windows文件選擇框中選擇待分析的nmon文件,等待分析、處理完成後,會在nmon文件目錄下生成同名但後綴名爲.xlsx的文件,後續分析在該xlsx文件中進行即可。
2.3.2 分析結果文件
通過nmon analyser工具,我們已經將nmon文件轉換成xlsx格式的結果文件,打開結果文件,可以發現每個sheet頁對應一個指標數據,一般在性能測試中,主要關注以下指標:
SYS_SUMM
CPU_ALL
CPU_SUMM
DISK_SUMM
DISKBUSY
MEM
NET
每個指標對應結果文件中的同名sheet頁,每個頁面除了採樣數據,還提供了對應的圖表數據。在實際結果分析時,一般選擇性能測試中所採樣的數據,也就是說,如果你的nmon程序是在性能測試前就啓動的,或者性能測試結束後仍然有采樣的,此時的結果文件會包括一些非相關的數據。所以,我的建議是:在性能測試開始後啓動nmon監控,通過設置監測時長使nmon在性能測試結束前退出。
接下來,對以上幾個主要指標頁面進行介紹。
2.3.3 主要指標頁面介紹
1. 系統彙總頁面(SYS_SUMM):
該頁面主要顯示系統CPU(藍線)和I/O(粉紅線)的使用情況,其中座標左縱軸爲cpu(user%+sys%)使用率,橫軸爲運行時長,右縱軸爲磁盤傳輸次數(Disk xfers),座標圖下方展示統計數據。
其中,User%爲用戶進程的CPU佔比,Sys%爲系統和中斷的CPU佔比,Wait%爲進程阻塞等待完成一次IO請求的CPU佔比,Idle%爲空閒CPU佔比。通常,CPU被充分使用的經驗值是:User%:65%-70%;Sys%:30%-35%;Idle%:0%-5%。
2. CPU使用情況(CPU_ALL、CPU_SUMM):
CPU_ALL頁面展示在採樣週期內服務器的CPU的使用情況,實際上,與SYS_SUMM展示的CPU數據是相同的,區別只是前者使用線狀圖表示。
CPU_SUMM頁面展示的是每顆CPU的使用情況,與使用top命令,按數字鍵”1”顯示各顆CPU的效果是一樣的。
3. 磁盤使用情況(DISK_SUMM、DISKBUSY):
DISK_SUMM頁面主要顯示磁盤讀、寫、IO情況,其中,需要注意的是:某一時間點的磁盤讀寫數據(Disk Read KB/s\Disk Write KB/s)等於該時間點上所有磁盤和分區的Read/Write的速率(KB/s)之和,分別與頁面DISKREAD、DISKWRITE對應;某一採集時間點的IO/sec等於頁面DISKXFER中該時間點上所有磁盤和分區的IO/sec之和。因此,該時間點上的I/O值統計是會有重複的。
DISKBUSY頁面主要顯示各個磁盤及分區的繁忙程度,是磁盤使用時間和全部時間的比值,即磁盤有百分之多少時間是活動的。通常,根據該頁面顯示的磁盤百分比數據,可以快速瞭解該磁盤的使用情況。
4. 內存使用情況(MEM):
MEM頁面主要顯示系統總內存、已用內存、可用內存、swap、cached等內存統計信息,統計單位爲MB,圖表左軸有個”千”字,單位換算後,memfree約19G,如圖:
5. 網絡使用情況(NET):
NET頁面顯示服務器各個網絡適配器讀寫數據情況,單位KB/s,注意與帶寬單位(bps)的換算,1MB/s = 8Mbps,如圖:
3 總結
nmon是linux平臺一款優秀的性能監控工具,除了功能齊全的是啥交互模式外,更常用的功能是後臺監控,通過一條命令即可獲取服務器全面的資源使用數據,正因爲這樣,官網對自己工具的評價耐人尋味,“Why use five or six tools when one free tool can give you everything you need!!”
4 其他資源
關於python學習、分享、交流,筆者開通了微信公衆號【小蟒社區】,感興趣的朋友可以關注下,歡迎加入,建立屬於我們自己的小圈子,一起學python。