一 背景html
在性能測試或Linux服務器運維中,都會涉及對系統資源使用狀況的監控,除了經常使用的系統命令外(如top、iostat、free等),比較全面的資源數據監控工具是NMON,經過在服務器上運行NMON能夠按期監控硬件資源並將採集數據生成到.nmon文件中。所以,問題就來了,在自動化監控中,如何實現對.nmon文件的解析並得到關心的性能指標數據呢?python
二 nmon及其經常使用數據處理方法linux
nmon是一款用於系統監視、性能測試分析及調優的免費工具,它可以一次性提供關於系統及資源使用狀況的大量性能指標信息,如CPU、內存、網絡、磁盤IO等。ios
經常使用nmon使用方法是:服務器
1. 開啓nmon網絡
./nmon_linux_64 -s 10 -c 60 -f -m /home/nmon運維
其中-s 指定每次採集間隔時間;-c 指定採集次數;-f 指定輸出使用電子表格格式;-m 在命令將數據保存至文件以前切換目錄。ide
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文件並得到性能指標數據的方法。