一、認識nmon
nmon是一種在AIX與各種Linux操作系統上廣泛使用的監控與分析工具,它能在系統運行過程中實時地捕捉系統資源的使用情況,記錄的信息比較全面,
並且能輸出結果到文件中,然后通過nmon_analyser工具產生數據文件與圖形化結果。
二、下載nmon
nmon:
版本:nmon_linux_14i.tar.gz
地址:https://sourceforge.net/projects/nmon/files/?source=navbar
nmonanalyser:
nmon_analyser 由IBM提供, 使用excel的宏命令分析加載生成excel圖表,展示資源占用的各項信息。
版本:nmon_analyser_v33g.zip
三、安裝nmon
安裝位置:/home/nmon (任意目錄)
1、 在home目錄下創建nmon文件夾:# mkdir nmon
2、 查看Linux發行版:cat /etc/issue
執行結果:
nmon@LXEFPAPPD1:~> cat /etc/issue
Welcome to SUSE Linux Enterprise Server 12 SP2 (x86_64) - Kernel \r (\l).
從而確定:系統是64位,SUSE 12的版本
3 、本地解壓nmon_linux_14i.tar.gz並上傳對應版本nmon_x86_64_opensuse12到nmon目錄
4、 賦權限:# chmod 777 nmon_x86_64_opensuse12
5、 啟動nmon:# ./nmon_x86_64_opensuse12(在nmon目錄下執行命令)
安裝成功顯示以下界面:

四、實時監控
輸入以下命令:
c 可顯示CPU的信息
m 對應內存
n 對應網絡
d 可以查看磁盤信息
t 可以查看系統的進程信息

五、采集監控數據
在實際的性能測試中我們需要把一段時間之內的數據記錄下來,如:
1、采集數據
./nmon_x86_64_opensuse12 -ft -s5 - c60 -F test.nmon
參數說明:
-s5 每隔n秒抽樣一次,這里為5秒
-c60 取出多少個抽樣數量,這里為60,即監控=5*60/60=5分鍾
-f 按標准格式輸出文件名稱:<hostname>_YYMMDD_HHMM.nmon
-t 輸出中包括占用率較高的進程
-F 指定文件名
PS:一般來說不建議對穩定性測試使用nmon監控,因為生成的nmon文件超過10M時,分析工具會由於內存不足導致報錯。
如果必須進行的話,建議加大采樣頻次,降低采樣次數(低於330次)。
六、生成圖形化報表
1、將test.nmon文件傳到本地電腦上
2、打開nmon analyser v33g.xls並啟動宏
3、點擊excel里的"Analysis nmon data"按鈕,打開你需要進行分析的nmon監控文件:

4、通過分析工具生成的監控數據結果如下圖:

七、nmon analyser常用指標解析:
1、CPU_ALL:
所有CPU概述,顯示監控系統所有CPU的平均占用情況,包含User/Sys/Wait/Idle狀態
a. User%,用戶模式下執行的程序所使用的CPU百分比
b. Sys%,內核模式下執行的程序所使用的CPU百分比
c. Wait%,等待 IO 所花的時間百分比
d. Idel%,CPU的空閑時間百分比,此值和User%,Sys%,Wait%之和等於1
e. CPU%,CPU總體占用情況,這個值通常等於User%+Sys%+Wait%
f. CPUs,CPU核數,即操作系統是多少C的
CPU百分比取User%+Sys%穩定階段的平均值
2、DISKBUSY:
每個hdisk設備平均占用情況,單位為%(百分比)
磁盤繁忙度去最高磁盤的平均值
3、MEM:
內存使用情況描述,包括物理內存和虛擬內存
a. memtotal,物理內存總大小
b. swaptotal,虛擬內存(即交換空間)的總大小
c. memfree,剩余物理內存大小
d. swapfree,剩余虛擬內存大小
e. cached,已占用的文件系統緩存大小,由物理內存分配
f. buffers,文件系統緩沖區大小
g. swapcached,虛擬內存中已分配出來的內存大小
h. inactive,最近不常使用的內存大小
可用內存=memfree + cached + buffers
memfree夠用的情況下:memfree內存利用率:(初始值-最小值)/總內存
memfree不夠用的情況下:可用內存利用率:(初始值-最小值)/總內存
內存泄漏:穩定性測試:可用內存:結束值-初始值
PS: 一個交易完成結束后需要一段時間釋放內存,兩個場景之間的間隔3~5分鍾釋放內存資源。
