nmon使用一

1.Nmon簡介

Nmon (Nigel’s Monitor)是由IBM 提供、免費監(jiān)控 AIX 系統(tǒng)與 Linux 系統(tǒng)資源的工具。該工具可將服務器系統(tǒng)資源耗用情況收集起來并輸出一個特定的文件,并可利用 excel 分析工具(nmon analyser)進行數(shù)據(jù)的統(tǒng)計分析。

1.1 軟件特性

nmon 工具可以在一個屏幕上顯示所有重要的性能優(yōu)化信息,并動態(tài)地對其進行更新。這個高效的工具可以工作于任何啞屏幕、telnet 會話、甚至撥號線路。另外,它不會消耗大量的 CPU 周期,通常低于百分之二(在更新的計算機上,其 CPU 使用率將低于百分之一)。nmon使用啞屏幕,在屏幕上對數(shù)據(jù)進行顯示,并且每隔兩秒鐘對其進行更新。用戶可以很容易地將這個時間間隔更改為更長或更短的時間段。如果拉伸窗口,并在 X Windows、VNC、PuTTY 或類似的窗口中顯示這些數(shù)據(jù),nmon 工具可以同時輸出大量的信息。

nmon 工具還可以將相同的數(shù)據(jù)捕獲到一個文本文件,便于以后對報告進行分析和繪制圖形。輸出文件采用電子表格的格式 (.csv)。

目前nmon已開源,以sourceforge為根據(jù)地,網(wǎng)址是http://nmon.sourceforge.net。

1.2 軟件組成

Nmon使用需要nmon工具和nmonanalyser分析程序兩者配合使用。nmon工具生成性能數(shù)據(jù)文件,然后monanalyser以nmon生成的數(shù)據(jù)文件作為輸入,輸出為Excel電子表格,并自動地生成相應的圖形,使得我們能夠直觀地觀察OS性能(CPU、IO和內(nèi)存等)的變化過程。

1.3 運行環(huán)境nmon 工具運行于: ? AIX及LINUX

nmon 工具大約每六個月更新一次,或者在可用的新的操作系統(tǒng)發(fā)布版中對其進行更新。

1.4 軟件功能

nmon 工具可以為 AIX 和 Linux 性能專家提供監(jiān)視和分析性能數(shù)據(jù)的功能,其中包括:

? CPU 使用率

? 內(nèi)存使用情況

? 內(nèi)核統(tǒng)計信息和運行隊列信息

? 磁盤 I/O 速度、傳輸和讀/寫比率

? 文件系統(tǒng)中的可用空間

? 磁盤適配器

? 網(wǎng)絡 I/O 速度、傳輸和讀/寫比率

? 頁面空間和頁面速度

? CPU 和 AIX 規(guī)范

? 消耗資源最多的進程

? IBM HTTP Web 緩存

? 用戶自定義的磁盤組

? 計算機詳細信息和資源

? 異步 I/O,僅適用于 AIX

? 工作負載管理器 (WLM),僅適用于 AIX

? IBM TotalStorage? Enterprise Storage Server? (ESS) 磁盤,僅適用于 AIX

? 網(wǎng)絡文件系統(tǒng) (NFS)

? 動態(tài) LPAR (DLPAR) 更改,僅適用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower

1.5 軟件獲取

nmon工具和nmonanalyser工具都可以在IBM的Wike頁面上下載到。

  1. Nmon下載:

在AIX5.3-09和6.1-02及以后的版本中,nmon工具默認已經(jīng)安裝,對于老的操作系統(tǒng)版本,可以到如下地址下載安裝:http://www.ibm.com/developerworks/wikis/download/attachments/53871937/newer_nmon4aix12e.tar.gz?version=1

將軟件包上傳到主機,解壓到部署目錄即可,可以看到壓縮包里是一些文件,如下:

image

其實nmon就是shell腳本,nmon文件運行時調(diào)用其他的文件,生成性能數(shù)據(jù),這個工具運行時也是通過執(zhí)行nmon腳本接受參數(shù)。

  1. Nmonanalyser下載:

位置:可從可從IBM Wiki上下載

http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmonanalyser

下載頁面如下:

image

例如下載V3.3版本的Nmonanalyser。

2. Nmon使用2.1 安裝軟件配置定時任務

  1. 用root用戶登錄系統(tǒng),建立目錄:

mkdir -p /home/backupfile/sys/data/nmondata

  1. 創(chuàng)建nmon工具運行腳本文件

vi /home/backupfile/sys/tools/nmon/nmon.sh

在nmon.sh文件中加入以下內(nèi)容,nmon命令的路徑根據(jù)具體情況修改,系統(tǒng)默認安裝用/usr/bin/nmon

/usr/bin/nmon -fT -s 120 -c 720 -F /home/backupfile/sys/data/nmondata

/batch_hostname_aix_date +%Y%m%d%H%M.txt

其中各參數(shù)表示:

-f 按標準格式輸出文件:_YYYYMMDD_HHMM.nmon

-m 切換到路徑去保存日志文件

-s 每隔n秒抽樣一次,這里為120

-c 取出多少個抽樣數(shù)量,這里為720,即監(jiān)控=720(120/60/60)=24小時

根據(jù)小時計算這個數(shù)字的公式為:c=h3600/s,比如要監(jiān)控10小時,每隔120秒采樣一次,則c=10*3600/120=300

該命令啟動后,會在nmon所在目錄下生成監(jiān)控文件,并持續(xù)寫入資源數(shù)據(jù),直至720個監(jiān)控點收集完成——即監(jiān)控1天,這些操作均自動完成,無需手工干預,測試人員可以繼續(xù)完成其他操作。如果想停止該監(jiān)控,需要通過“#ps –ef|grep nmon”查詢進程號,然后殺掉該進程以停止監(jiān)控。

  1. 使用以下命令確保nmon.sh文件具有可執(zhí)行權(quán)限;

chmod +x /home/backupfile/sys/tools/nmon/nmon.sh

  1. 啟動nmon,添加crontab item;

crontab -e

在末尾添加一行

0 0 * * * /home/backupfile/sys/tools/nmon/nmon.sh

  1. 如需停止nmon,注釋crontab item;

crontab -e

注釋nmon腳本任務

0 0 * * * /home/backupfile/sys/tools/nmon/nmon.sh

  1. 如需檢查nmon輸出數(shù)據(jù),查看/home/backupfile/sys/data/nmondata目錄下輸出

ls -l /home/backupfile/sys/data/nmondata;

  1. nmon開始運行后,每天在/home/backupfile/sys/data/nmondata下產(chǎn)生一個文件,文件名包含日期如batch_hostname_aix_201408152359.txt;

  2. nmon數(shù)據(jù)文件定期備份定期清理

2.2 運行界面

  1. 運行/usr/bin/nmon,便可進入nmon的監(jiān)控界面,如下圖:
image
  1. 鍵入“c”查看系統(tǒng)CPU使用情況
image
  1. 鍵入“m”查看系統(tǒng)內(nèi)存使用情況
image
  1. 鍵入“d”查看系統(tǒng)磁盤I/O情況
image
  1. 鍵入“h”查看幫助信息
image

2.3 使用方法

在完成配置后,只需要“/usr/bin/nmon”命令即可運行程序,通過一些快捷鍵調(diào)取關(guān)心的系統(tǒng)資源指標進行顯示,如按鍵“C”可以查看CPU相關(guān)信息;按鍵“D”可以查看磁盤信息;按鍵“T”可以查看系統(tǒng)的進程信息;“M”對應內(nèi)存、“N”對應網(wǎng)絡等等,完整的快捷鍵對應內(nèi)容可以通過幫助(按鍵 “H”)查看,可以顯示Linux系統(tǒng)CPU、內(nèi)存、進程信息,包括了CPU的用戶、系統(tǒng)、等待和空閑狀態(tài)值,可用內(nèi)存、緩存大小以及進程的CPU消耗等詳細指標。

該種方式顯示信息實時性強,能夠及時掌握系統(tǒng)承受壓力下的運行情況,每顆CPU利用率是多少、內(nèi)存使用多少、網(wǎng)絡流量多少、磁盤讀寫……這些數(shù)據(jù)均是實時刷新,一目了然。

3. Nmon監(jiān)控結(jié)果介紹3.1 生成結(jié)果文件

通過后臺監(jiān)控和定期監(jiān)控,我們可以得到擴展名為nmon的監(jiān)控文件(文件名和擴展名可以根據(jù)實際需求修改,但nmon analyser只能打開擴展名為csv和nmon的文件),這些文件記錄著系統(tǒng)資源的數(shù)據(jù),需要配合分析工具(nmon analyser)進行解讀。

  1. 從服務器上取下生成結(jié)果文件/home/backupfile/sys/data/nmondat/batch_wn1cpcglddb1002_aix_1608240000.txt到本機,并修改擴展名為batch_wn1cpcglddb1002_aix_1608240000.nmon。

  2. 打開nmon_analyser.zip 包下的nmon analyser v33g.xls 文件,點擊Analyse nomn data按鈕,選擇之前get下來的batch_wn1cpcglddb1002_aix_1608240000.nmon文件。

  3. 生成分析結(jié)果文件batch_wn1cpcglddb1002_aix_1608240000.xlsx,并生成統(tǒng)計圖,直觀顯示系統(tǒng)資源情況。

3.2 主要性能參數(shù)介紹

系統(tǒng)匯總(對應excel標簽的‘SYS_SUMM’):其中藍線為cpu占有率變化情況;粉線為磁盤IO的變化情況。

磁盤讀寫情況匯總(對應excel標簽的‘DISK_SUMM’):其中藍色為磁盤讀的速率KB/sec;紫色為磁盤寫的速率KB/sec。

內(nèi)存情況匯總(對應excel標簽的‘MEM’): 曲線表示內(nèi)存剩余量(MB)

3.3 頁面介紹簡單介紹生成結(jié)果的各個頁面:

  1. 系統(tǒng)匯總頁面:對應標簽頁(SYS_SUMM)

頁面顯示項主要有主機名,執(zhí)行日期,系統(tǒng)cpu使用情況(藍線),系統(tǒng)I/O情況(粉紅線),其中坐標左縱軸為系統(tǒng)cpu(user%+sys%)使用率,橫軸為運行時長(下圖為一個小時),右縱軸為系統(tǒng)磁盤傳輸(Disk xfers),坐標下側(cè)為統(tǒng)計信息:系統(tǒng)I/O情況(一個周期內(nèi)的平均值、最大值、出現(xiàn)最大值的時間),系統(tǒng)CPU使用情況

image
image

注釋:

如果系統(tǒng)CPU有IO wait存在,說明可能IO或內(nèi)存方面存在瓶頸,其中主要導致IO Wait的主要原因如下:

內(nèi)存不夠而引起頻繁的的數(shù)據(jù)交換,導致數(shù)據(jù)存取存在交換空間的 I/O瓶頸

硬盤數(shù)據(jù)分布不合理

  1. 系統(tǒng)信息:標簽頁(AAA)

頁面信息主要包括:執(zhí)行命令,主機CPU數(shù)(4),操作系統(tǒng)內(nèi)核版本信息,主機名等信息。

image
  1. 系統(tǒng)詳細信息:標簽頁(BBBP)

頁面信息主要包括:操作系統(tǒng)版本,主機磁盤信息,主機CPU型號、主頻信息,內(nèi)存信息,網(wǎng)卡信息等。

image
  1. CPU使用情況:標簽頁(LPAR,CPU_ALL,CPU_SUMM,CPU001,CPU002,CPU003,CPU004…)

主機CPU使用情況匯總以及單顆CPU的運行情況。

image
image
image
  1. 磁盤讀寫情況匯總:標簽頁(DISK_SUMM,DISKBSIZE,DISKBUSY,DISKREAD,DISKWRITE,DISKXFER)

磁盤的讀、寫及I/O統(tǒng)計信息,系統(tǒng)各磁盤分區(qū)的讀寫情況。其中DISKBUSY頁主要反映系統(tǒng)本地磁盤使用,DISK_SUMM包括本地和存儲(ESS, EMC, FASt及HDS)上所有磁盤使用情況。

image
image
image
  1. 內(nèi)存使用情況:標簽頁(MEM)

系統(tǒng)內(nèi)存空閑、使用,swap、cached等統(tǒng)計信息。

image
  1. 系統(tǒng)網(wǎng)絡情況:標簽頁(NET,NETPACKET)

反映系統(tǒng)的網(wǎng)絡運行情況,系統(tǒng)各個網(wǎng)絡適配器讀寫的數(shù)據(jù)包數(shù)

image
  1. 系統(tǒng)進程:標簽頁(PROC)

反映系統(tǒng)運行線程及等待切換的線程平均數(shù)。其中RunQueue - 每個處理器應該運行隊列不超過1-3個線程。

image
image
  1. 頁式調(diào)度:標簽頁(PAGE)

記錄系統(tǒng)(AIX)頁式調(diào)度的情況。這一欄主要記錄系統(tǒng)換頁(paging)情況和頁面掃描:自由比率(page scan:free ratio)。其中系統(tǒng)換頁頻率應該不大于5次/秒,而當頁面掃描:自由比率持續(xù)大于4時,需要重點關(guān)注下系統(tǒng)內(nèi)存和分頁空間的使用情況

image
image

說明:

大量的內(nèi)存交換操作會極大地影響系統(tǒng)的性能,尤其是在當數(shù)據(jù)庫文件創(chuàng)建在文件系統(tǒng)上時(JFS and JFS2)。在這種情況下經(jīng)常訪問的數(shù)據(jù),即在SGA中存在,也同樣在文件的緩存中存在。這種相同的數(shù)據(jù)在內(nèi)存中緩存兩次的情況,會降低內(nèi)存的使用效率,從而使內(nèi)存頻繁進行交換操作,造成系統(tǒng)的I/O瓶頸,降低整個系統(tǒng)的性能。

  1. 采集時間:標簽頁(ZZZZ)

記錄nmon工具采集系統(tǒng)信息的時間點。

image

4.Nmon監(jiān)控常見現(xiàn)象和產(chǎn)生原因

性能下降(Performance Degradation),主要是指系統(tǒng)的性能隨時間而逐漸下降(這里假定在系統(tǒng)性能下降的過程中系統(tǒng)的負載狀況沒有明顯變化)。系統(tǒng)運行過程中占用的CPU或內(nèi)存隨時間增加也屬于廣義的性能下降問題。

在生產(chǎn)環(huán)境中,通常由終端客戶最先感覺到并報告性能下降問題。所以狹義的性能下降問題主要是指系統(tǒng)運行指標隨時間變化,比如吞吐率隨時間下降或頁面響應時間隨時間上升,或者兩者兼而有之。

下面列舉一些引起性能下降問題的原因:

  • 應用程序資源使用問題。主要是內(nèi)存使用問題,即由于應用服務器的內(nèi)存碎片問題或內(nèi)存泄漏問題,導致垃圾回收的開銷隨時間增大。也有可能是因為磁盤臨時文件積累造成磁盤訪問開銷增大。

  • 應用程序設計問題。由于應用程序的設計存在可擴展性或可靠性問題,導致運行開銷隨時間或業(yè)務對象的積累而增大。

  • 數(shù)據(jù)庫訪問問題。該問題又可以分為許多類型,如調(diào)優(yōu)參數(shù)問題、表結(jié)構(gòu)或索引設計問題、垃圾數(shù)據(jù)問題等。其共同特點是導致應用程序利用特定操作訪問數(shù)據(jù)庫的開銷隨時間而增大。

  • 服務器軟件資源使用問題。雖然可能性很小,但是應用服務器、數(shù)據(jù)庫服務器等服務器程序也是軟件程序,也有可能存在性能下降問題。這些服務器程序在自身測試過程中可能遺漏了某些性能問題,而在用戶特定的執(zhí)行狀況下觸發(fā)了這些問題,結(jié)果導致這些服務器程序使用的操作系統(tǒng)資源泄漏而出現(xiàn)性能下降問題。

  • 測試用例設計問題。性能測試中有可能發(fā)現(xiàn)一些“假”的性能下降問題。比如測試用例設計時假設在測試執(zhí)行過程中系統(tǒng)負載保持恒定,但實際的測試用例實現(xiàn)導致系統(tǒng)負載或特定頁面的處理內(nèi)容隨時間增多,也可能導致測試工具的測試報告中出現(xiàn)性能下降問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容