不得不掌握的性能測試監控神器 -nmon 工具詳解
做性能測試時候進行結果收集和監控是我們必須要進行的一個步驟,所以選擇一個好的監控工具能幫我們省事省心。我們今天給大家介紹的監聽工具 nmon,就是一個非常強大而且市場上也非常主流應用的一個監控工具。
前****言
做性能測試時候進行結果收集和監控是我們必須要進行的一個步驟,所以選擇一個好的監控工具能幫我們省事省心。我們今天給大家介紹的監聽工具 nmon,就是一個非常強大而且市場上也非常主流應用的一個監控工具。
nmon 它可以幫助我們在壓測開始很長時間內監控全過程的各種資源消耗佔用情況,我們就需要用今天的工具 。
nmon 是什麼
nmon 是 Nigel's performance Monitor for Linux【nigel 的 linux 性能監控器】的英文縮寫,是一款使用非常靈活的性能監控工具。它這相比於其他的性能監控工具主要有如下的優勢:
-
工具本身消耗的資源比較少,對服務器的性能結果乾擾很小;
-
工具監控的數據類型種類比較齊全,比如監控 CPU,內存,磁盤,網絡的信息,並可以對每個信息進行細分;
-
不僅可以監控 CPU 等,還可以對 CPU 進行信息的細分,比如用戶態 系統態 CPU 空閒等;
-
內存: 可以監控到詳細的虛擬內存、實際內存 以及各線程佔用的內存情況都有。
-
工具使用非常簡單:下載解壓縮工具包直接啓動就可以,不需要寫複雜的腳本,沒有任何使用門檻。
nmon 的安裝
nmon 分爲服務器監聽工具和客戶端分析工具兩個部分。
服務器監聽工具安裝
服務器監聽工具需要放在被測試服務器上,並一定要跟服務器的版本對應,所以下載安裝之前需要先確認一下系統的版本:
1、確認被測服務器的系統版本, 通過 lscpu 或者 cat /etc/redhat-release :查看系統版本
比如 cat /etc/redhat-release 結果顯示:CentOS Linux release 7.9.2009 (Core),說明系統是 centOS 的 7 的,64bit 的操作系統。
2、下載服務器監聽的安裝包:
https://nchc.dl.sourceforge.net/project/nmon/nmon16m_helpsystems.tar.gz ,並上傳到被測的服務器上;
3、在服務器上安裝這個 nmon 工具:
1)解壓工具:tar -xzvf nmon.tar.gz
-
先創建一個目錄:mkdir nmon
-
再解壓到指定目錄:tar -xzvf nmon16m_helpsystems.tar.gz -C nmon
2) 進入解壓後的文件夾,ls 查看內容
- 裏面有各種系統的啓動包,我們要啓動我們系統對應的包:比如 nmon_x86_64_centos7,版本錯了就會報錯了。
3)啓動服務:./nmon_x86_64_centos7 ,可以按 h 進入幫助文檔,q 可以退出。進去的工具頁面如下:
客戶端解析工具安裝:
1、官網下載安裝包:下載下來是個壓縮包:
2、壓縮到本地,可以得到兩個文件:
-
第一個是工具使用幫助文檔,但是工具使用很簡單,基本也不用看幫助文檔;
-
第二個是具體工具使用的文件。
到這裏就工具的安裝和準備就完成了。
nmon 的三種運行模式
nmon 工具提供了三種用戶運行的模式,可以給不同的場景使用。三種模式分別是:
-
屏幕交互模式 :使用簡單的命令字母就可以得到監控結果,需要實時關注屏幕數據,用於進行實時數據分析場景;
-
數據收集模式:可以在後臺自動收集數據,並自己可以定義收集的時長,真正做到無人值守和持久化收集數據;
-
定時任務模式:定時執行監控,可以指定很多計劃去執行,也適合更長時間的數據收集場景。
接下來,我們就分別結合這三種場景給大家介紹一下 nmon 工具的使用和相關的命令參數。
屏幕交互模式
nmon 提供了非常豐富的參數可以進行各種信息的監控;我們可以通過./nmon -h 進入完整的幫助手冊,可以看到詳細的所有的命令參數。
參數很多,但是不需要每個都知道,常用的就是 cmdrtn 這六個,我們分別來講解一下這六個參數分別監控的數據。
1)c:進入 nmon 界面輸入小寫的 c,就可以看到 cpu 的統計信息,會包括詳細信息如下:用戶態 系統態 等待 io 的 CPU 和空閒佔的 CPU 情況;再輸入 c 就不展示這個界面了。
-
右邊後面部分是佔比 100% 位,就是目前總體 CPU 佔比;
-
這個界面默認 2s 刷新一次,所有每次的顯示的數據是個瞬間值,適合用來做實時的數據分析 ;
-
後面的 U 和 S 是用戶態 和系統態的 CPU 佔用率;
-
最下面的一行是 CPU 的平均值的計算顯示.
2)m:小寫 m 命令是用來進行 nmon 內存的監控,會顯示所有內存詳細的信息。比如總共的內存,空閒的內存等信息:
-
RMA_Memory: 物理內存信息,包括總共和空閒,以及空佔比。
-
Swap_Space:交換分區由磁盤劃分出來的虛擬內內存;
-
如果發現使用率過高了,在下面的詳細信息裏看看具體使用在哪些地方了;比如 cache 的佔比,active 的佔比等
-
但是要更加細化的知道哪些服務佔用,需要使用其他的一些工具分析,通過 nmon 只能瞭解大概的情況。
通過這個監控可以很好的看到內存的使用情況,如果內存使用率過高:應用可能被重啓, 服務器可能崩潰, 後果是很嚴重的。
3)d: 小寫的 d,通過圖形化的方式展示 IO 的情況
-
write 操作【Input】,read 【output】,分別展示讀寫的操作;
-
右側是 io 的繁忙程度百分佔比:如果很高就需要分析問題
-
可以通過這個數據分析得到是否磁盤 io 成爲了系統的瓶頸,如果是的話,是讀還是寫瓶頸。
4)n:小寫的 n,用來做網絡的監控
-
NetworkError Counters 部分:如果有報錯就會顯示,否則會消失。
-
Network I/O 部分:顯示接受和發送的包的大小,接受和發送的包的個數,接受和發送包的尺寸等信息。
-
跟我們性能相關的數據是第二列和第三列:發送和接受的報文的多少,還跟網卡的處理上限和帶寬的上限的關係,取他們的最小值【短板】跟我們發送和接受的數據做比對,判斷網絡就是否成爲了性能瓶頸了。
5)rt:小寫的 r 和 t,分別監控 resource 和 top。
- t: 進程消耗資源比較多的進行排序顯示,可以有效的知道哪些應用消耗資源最多
- r: 資源:操作系統的資源信息,關於 cpu 的介紹,髮型版本的介紹都在裏面
nmon 數據收集模式
使用命令控制比較長的收集測試結果:./nmon -f -s 2 -c 10
參數解析:
-
-f:標準輸出到. nmon 文件 :不加名字會有默認的 hostname + 時間的方式命名 後綴是. nmon
-
-s:收集數據間隔時長: 比如設置爲 2s
-
-c:總共收集次數:比如總共收集 10 次
以上的命令也就是收集最近 20s 的監控數據。輸入命令後,會在當前目錄生成一個文件,如下圖所示:
等時間到了之後,把生成的文件導出到本地,可以使用前面安裝的客戶端分析工具進行解析:
-
1、使用 Microsoft office 打開含有宏的 excel 文件
-
2、選擇導出到本地的 nmon 文件
-
3、保存結果
-
4、查看結果文件
然後可以生成各個維度的數據圖標和統計信息:
nmon 的定時模式
這個模式是按照你定的時間跨度去收集,不需要自己計算收集的時間。可以加上的參數如下:
-
-x 收集 1 天數據,默認爲 - s900 -c96
-
-X 收集 1 個小時,默認爲 - s30 -c120, 這個用的比較多。
-
-z 用 root 賬戶運行,收集 1 天數據,輸出到 / var/perf/tmp 文件
三種模式的使用優先級總結
1、屏幕交互模式用的最多;因爲做性能測試的時候需要實時分析很多數據 及時性;
2、其次是數據收集模式,可以查看長時間內的數據
3、最後是定時模式:這種用的比較少,一方面時間太長,另外這個也可以被第二種替代。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/7OeIV8B2IrlLM1jJw5Ra6A