服務器測試技術詳解 主機資源監控利器
在性能測試過程中,對主機資源的監控有著重要意義。一方面,在測試過程中可以判斷加壓是否成功、系統是否能承受當前壓力,確保系統安全;另一方面,測試結束后,通過對監控數據的整理,可以為性能分析、發現問題、尋找瓶頸提供數據支持。本文將結合工作中的實際情況,介紹Unix、Linux操作系統中常用的資源監控工具NMON及使用方法。
一、NMON介紹
nmon是一種在AIX與各種Linux操作系統上廣泛使用的監控與分析工具, nmon所記錄的信息是比較全面的,它能在系統運行過程中實時地捕捉系統資源的使用情況,并且能輸出結果到文件中。nmon工具可以幫助在一個屏幕上顯示所有重要的性能優化信息,并動態地對其進行更新。并且,nmon運行不會占用過多的系統資源,通常情況下CPU利用率不會超過2%。
針對不同的操作系統版本,nmon有相應版本的程序,需要注意的是該文件需要執行授權操作方可正常運行。
二、NMON使用方法
實際工作中,nmon有三種常用的使用模式,分別是實時監控、后臺監控和定期監控模式。下面分別加以介紹。
1、實時監控:在完成配置后,只需要“#./nmon”命令即可運行程序,通過一些快捷鍵調取關心的系統資源指標進行顯示,如按鍵“C”可以查看CPU相關信息;按鍵“D”可以查看磁盤信息;按鍵“T”可以查看系統的進程信息;“M”對應內存、“N”對應網絡等等,完整的快捷鍵對應內容可以通過幫助(按鍵“H”)查看,如圖1 NMON實時監控界面所示,顯示了Linux系統CPU、內存、進程信息,包括了CPU的用戶、系統、等待和空閑狀態值,可用內存、緩存大小以及進程的CPU消耗等詳細指標。該種方式顯示信息實時性強,能夠及時掌握系統承受壓力下的運行情況,每顆CPU利用率是多少、內存使用多少、網絡流量多少、磁盤讀寫……這些數據實時刷新,一目了然。但是如果我們希望將一段時間的資源情況記錄下來,以備后續的分析工作,則需要以另一種方式使用nmon。
圖 1 NMON實時監控界面
2、后臺監控:為了配合性能測試,我們往往需要將一個時間段內系統資源消耗情況記錄下來,這時可以使用命令:./nmon -f -s 10 -c 360。說明:
-f :按標準格式輸出文件名稱:<hostname>_YYYYMMDD_HHMM.nmon
-s :每隔n秒抽樣一次,這里為10秒
-c :取出多少個抽樣數量,這里為360,即監控=10*360/3600=1小時
該命令啟動后,會在nmon所在目錄下生成監控文件,并持續寫入資源數據,直至360個監控點收集完成——即監控1小時,這些操作均自動完成,無需手工干預,測試人員可以繼續完成其他操作。如果想停止該監控,需要通過“#ps –ef|grep nmon”查詢進程號,然后殺掉該進程以停止監控。
3、定期監控:除配合性能測試的短期監控,我們也可以實現對系統的定期監控,作為運營維護階段的參考。定期監控可通過“#crontab -e”命令實現,在***一行添加“0 8 * * 1,2,3,4,5 /nmon -f -s 30 -c 1200”,表示:周一到周五,從早上08點開始,監控10個小時(到18:00整為止)。
三、NMON監控結果分析
通過后臺監控和定期監控,我們可以得到擴展名為nmon的監控文件,這些文件記錄著系統資源的數據,需要配合分析工具進行解讀。nmon analyser.xls可以將.nmon文件轉化為Excel文件,并生成統計圖,直觀顯示系統資源情況。如圖2 系統資源匯總所示,顯示了系統CPU及IO資源的總體使用情況。其中藍色曲線表示CPU資源,可知測試過程中CPU利用率在70%上下波動,表明系統對于CPU資源利用比較充分,未出現瓶頸,也未出現資源利用不足情況。
圖 2 系統資源匯總
在測試過程中,我們往往需要更加詳細的信息以分析系統性能情況,如果認為磁盤IO偏高,我們需要進一步獲取磁盤的詳細信息加以分析,在nmon結果中打開“DISK_SUMM”標簽頁,如圖3 磁盤資源匯總所示。
圖 3 磁盤資源匯總
觀察結果,發現磁盤寫入數據較多,平均值達到每秒450KB,可以判斷這是造成磁盤IO偏高的主要原因,那么結合系統實際設置,可以進一步確定造成問題的原因,如系統日志級別過低等等。NMON能夠提供CPU、內存、硬盤、網絡等各方面的信息,對于我們的分析工作能夠提供很好的數據支持。
另外,我們可以通過一些輸出參數的調整以得到偏重不同角度、或不同形式的統計結果,其中比較常用的“Intervals”參數,該參數定義了原始.nmon文件的取值范圍,即統計內容取自原始數據的哪部分。因為原始數據是多個采樣點的集合,通過設置“Intervals”的開始、結束值。(如開始為1,結束為60,根據前文的設置,可知這是截取了前十分鐘的數據進行統計展示)
總結:本文介紹了適合在Unix、Linux操作系統中使用的主機資源監控工具NMON,并簡單說明了其使用方法和常用監控方式。在實際項目中,為了建立完善的監控體系,還可能需要與其他工具、方法配合使用,以達到我們的測試目標。