一、前言
之前瞭解了grafana監控服務器性能,想着多瞭解些其他工具,於是就着手查找了nmon的資料。
二、簡介
nmon是一種在AIX與各種Linux操作系統上廣泛使用的監控與分析工具,它能在系統運行過程中實時地捕捉系統資源的使用情況,記錄的信息比較全面,
並且能輸出結果到文件中,然後通過nmon_analyzer工具產生數據文件與圖形化結果。另外,它並不會消耗大量的 CPU 週期,通常低於百分之二;在更新的計算機上,其CPU使用率將低於百分之一。
1、nmon可監控的數據類型
內存使用情況
磁盤適配器
文件系統中的可用空間
CPU使用率
頁面空間和頁面速度
異步I/O,僅適用於AIX
網絡文件系統(NFS)
磁盤I/O速度和讀寫比率
服務器詳細信息和資源
內核統計信息
消耗資源最多的進程
運行隊列信息
2、特點
①、佔用系統資源少(一般不到2%)
②、功能強大(監控數據類型全面)
③、結合grafana之類的儀表圖,可以更直觀的實時展示所監控的數據
④、移植性、兼容性較好
三、安裝下載
1、官方地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
2、通過xftp把文件上傳到服務器(rz)
3、解壓授權
解壓命令:tar -zxvf 文件名.tar.gz
給工具授權(相當於給文件的所有者增加可執行權限):chmod u+x 文件名
四、運行nmon
1、./nmon_x86_64_centos7
完成上面的操作後,執行 ./nmon 命令,出現如下界面,說明安裝成功:
2、快捷命令
輸入如下命令後,效果如圖
# c
查看CPU相關信息
# m
查看內存相關信息
# d
查看磁盤相關信息
# n
查看網絡相關信息
# t
查看相關進程信息
# h
查看幫助相關信息
3、指標解讀
1)CPU(對應excel標籤的‘CPU_ALL’)
User% :顯示在用戶模式下執行的程序所使用的 CPU 百分比;
Sys%:顯示在內核模式下執行的程序所使用的 CPU 百分比;
Wait%:顯示等待 IO 所花的時間百分比;
Idle%:顯示 CPU 的空閒時間百分比;
CPU%:CPU總體佔用情況;
CPU_ALL 表,的CPU%列取平均值即可---注意下圖中紅框中就是無效數據;
2)磁盤設備佔用(對應excel標籤的‘DISKBUSY’)
Disk %Busy Hostname:執行間隔時間列表;
hdisknn:每個磁盤執行採樣數據;(磁盤設備的佔用百分比)
DISKBUSY表,對於單磁盤服務器直接對SDA列取平均即可;多服務器的話看情況而定,如果只有一個磁盤有壓力那麼就選擇那個磁盤即可,要是兩個磁盤均有則要合起來取個平均;
3)內存佔用(對應excel標籤的‘MEM’)
MemTotal:顯示當前服務器物理內存大小,本服務器有8063180 KB≈7874 MB左右。
MemFree:顯示當前服務器的空閒內存大小,本服務器有5052336 KB≈4934 MB左右。
Buffers:顯示當前服務器Buffer(在內存中要寫到磁盤上的)緩存的大小,本服務器有459108 KB≈448 MB左右,注意,這裏的數值僅是採集初期的靜態值,具體Buffer的變化還需要看Sheet MEM。
Cached:顯示當前服務器Cache緩存的大小(從磁盤讀取到內存的),本服務器有1032572 KB≈1008 MB左右。,這裏的數值僅是採集初期的靜態值,具體Buffer的變化還需要看Sheet MEM。
SwapCached:顯示當前服務器Swap空間已緩存的大小,本服務器尚未使用到Swap空間。
SwapTotal:顯示當前服務器Swap空間大小,本服務器有8385532 KB≈8189 MB左右。
SwapFree:顯示當前服務器Swap空閒空間大小,本服務器Swap空間都空閒。
4)在MEM表裏面使用如下公式計算出每行的內存使用率並進行取平均:
(Memtotal - Memfree - cached - buffers)/Memtotal * 100即( =(B2-F2-K2-N2)/B2*100)
通過分析內存使用率的趨勢,可定位是否內存泄露情況。
有人看到內存使用率是99%,就認爲內存用滿了,並沒有區分內存分頁是什麼類型,這樣武斷的說內存用滿了是不科學的。在AIX上主要關注的是計算內存佔整個物理內存的百分比,linux上主要關注的是active內存佔整個物理內存的百分比。
5)網絡(對應excel標籤的‘NET’)
read/write:本sheet顯示系統中每個網絡適配器的數據傳輸速率(千字節/秒)
NET(MB) 網絡佔用是唯一需要轉換爲MB的而不是%
找到eth0-total eth1-total中不爲0的那列,取平均併除以1024。
注意此處的write 相當於 nmon時時監控(直接執行並按n鍵)中的TRANS(OUT),read相當於RECVS(IN)
五、採集數據(純轉發,未實操)
nmon通過命令行啓動監控,捕獲服務器的各項數據,命令如下:
./nmon -ft -s 10 -c 60 -m /root/nmon
# 參數說明
-f 監控結果以文件形式輸出,默認機器名+日期.nmon格式
-F 指定輸出的文件名,比如test.nmon
-s 指的是採樣的頻率,單位爲毫秒
-c 指的是採樣的次數,即以上面的採樣頻率採集多少次
-m 指定生成的文件目錄
PS:一般來說不建議對穩定性測試使用nmon監控,因爲生成的nmon文件超過10M時,分析工具會由於內存不足導致報錯。
如果必須進行的話,建議加大采樣頻次,降低採樣次數(低於330次)。
六、監控結果分析(純轉發,未實操)
1、下載分析工具
nmon監控捕獲的信息,一般用nmon_analyser來進行分析。nmon_analyser 由IBM提供, 使用excel的宏命令分析加載生成excel圖表,展示資源佔用的各項信息。
下載地址:https://community.ibm.com/community/user/legacy?lang=en#!/wiki/Power%20Systems/page/nmon_analyser
下載你需要的版本,然後解壓,解壓後出現如下2個文件:
2、使用nmon analyser工具
打開.xlsm文件,點擊Analyze nmon data,打開你需要進行分析的nmon監控文件:
PS:如果提示分析文件不可用,從“工具-宏-安全性”啓動宏,然後再次打開文件,即可使用該分析文件。
3、生成各種圖表數據
通過分析工具生成的監控數據結果如下圖:
紅色標註區域爲採集的監控數據,選擇自己需要的類型(比如cpu),然後篩選對應的服務Pid(比如1314),選擇對應的數據類型(比如CPU使用率佔比)。
參考博客:https://www.cnblogs.com/imyalost/p/9689213.html