服務端監控工具 - nmon的安裝和使用

一、前言

  之前瞭解了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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章