一 背景
在性能測試或Linux服務器運維中,都會涉及對系統資源使用情況的監控,除了常用的系統命令外(如top、iostat、free等),比較全面的資源數據監控工具是NMON,通過在服務器上運行NMON可以定期監控硬件資源並將採集數據生成到.nmon文件中。因此,問題就來了,在自動化監控中,如何實現對.nmon文件的解析並獲得關心的性能指標數據呢?
二 nmon及其常用數據處理方法
nmon是一款用於系統監視、性能測試分析及調優的免費工具,它能夠一次性提供關於系統及資源使用情況的大量性能指標信息,如CPU、內存、網絡、磁盤IO等。
常用nmon使用方法是:
1. 開啓nmon
./nmon_linux_64 -s 10 -c 60 -f -m /home/nmon
其中-s 指定每次採集間隔時間;-c 指定採集次數;-f 指定輸出使用電子表格格式;-m 在命令將數據保存至文件之前切換目錄。
2. 分析nmon數據
使用上述命令,採集次數到達後,會在指定目錄生成xxxx.nmon的文件,分析.nmon文件的常用方法是使用nmon_analyser.xlsm,通過導入.nmon文件,將數據顯示在excel文件中。
三 python解析nmon的姿勢
通過上述分析,獲取nmon文件數據的常用方法主要應用在交互模式下,並不適合在性能自動化或自動化運維監控中。下面將介紹使用python解析nmon文件並獲取性能指標數據的方法。
首先,.nmon文件本質是文本文件,可以使用python直接進行讀寫操作;
其次,通過分析關心指標數據的位置,通過正則匹配的方法獲取數據;
最後,將數據彙總寫入html,用於展示各個服務器上的資源使用情況;
根據上述思路,實現解析.nmon並獲得CPU使用情況的代碼如下:
其他資源的獲取情況類似,不再贅述。
四 效果展示
根據實現的腳本,分析各服務器的.nmon文件並生成html報告的效果如下:
五 總結
Nmon是常用的性能監控工具,常用的nmon_analyser.xlsm工具分析nmon的方法在性能自動化中並不適用,因而介紹了使用python腳本直接分析nmon文件並獲得性能指標數據的方法。