nmon 在服務(wù)器的使用
如何獲取nmon呢判族?我們可以在IBM的官方網(wǎng)站上免費(fèi)下載獲取,下載網(wǎng)址為:http://www.ibm.com/developerworks/wikis/display/WikiPtype/nmon
我在ubuntu中 這樣安裝:apt-get install nmon
nmon -f -s 5 -c 500 每5秒采集一次项戴,一共采集500次
-f:按標(biāo)準(zhǔn)格式輸出文件:<hostname>_YYYYMMDD_HHMM.nmon
-s300 -c288 300*288=86400 秒形帮,正好是一天的數(shù)據(jù)。
此時(shí)這樣就已經(jīng)會(huì)自動(dòng)生成一個(gè).nmon文件了周叮,這個(gè)文件可以直接放到nmon_analyse 中分析即可生成報(bào)表
mon 輸出文件的命名方式是服務(wù)器名_日期時(shí)間.nmon
通過(guò)以下命令辩撑,將.nmon文件轉(zhuǎn)化成.csv文件,在當(dāng)前目錄生成對(duì)應(yīng)的.csv文件
sort BOSS1_110810_1438.nmon>BOSS1_110810_1438.csv
最后把放到nmon_analyse 分析既可以了
nmon_analyse 數(shù)據(jù)詳情
性能測(cè)試中仿耽,服務(wù)器監(jiān)控合冀,NMON監(jiān)控指標(biāo)說(shuō)明
一、NMON中的各項(xiàng)參數(shù)指標(biāo):
SYS_SUMM:顯示當(dāng)前服務(wù)器的總體性能情況
Total System I/OStatistics:
Avg tps during an interval:顯示采集間隔內(nèi)磁盤平均I/O次數(shù)项贺,該值等于Sheet DISK_SUMM中IO/sec列的平均值君躺。
Max tps during an interval:顯示采集間隔內(nèi)磁盤最大I/O次數(shù),該值等于Sheet DISK_SUMM中IO/sec列的最大值开缎。
Max tps interval time:顯示磁盤最大I/O所在時(shí)間點(diǎn)棕叫。
Total number of Mbytes read:顯示采集間隔內(nèi)磁盤讀的總兆字節(jié)數(shù),可能是nmon的bug奕删,該值并不準(zhǔn)確俺泣,并且使用LVM劃分的虛擬磁盤可能會(huì)存在重復(fù)統(tǒng)計(jì)。
Total number of Mbytes written:顯示采集間隔內(nèi)磁盤寫的總兆字節(jié)數(shù),該值并不準(zhǔn)確伏钠,理由同上横漏。
Read/Write Ratio:顯示Total number of Mbytes read/ Total number of Mbytes written的值。 實(shí)時(shí)讀寫比率
IO/sec:僅顯示磁盤IO/sec的圖贝润,不包括Network的I/O绊茧。 每秒鐘輸出到物理磁盤的傳輸次數(shù)
如下圖:
CPU:
Users%:顯示采集間隔內(nèi)所有CPU在User Mode下的Time占比(Avg、Max)打掘。
Sys%:顯示采集間隔內(nèi)所有CPU在System Mode下的Time占比(Avg华畏、Max)。
Wait%:顯示采集間隔內(nèi)所有CPU處于空閑且等待I/O完成的時(shí)間比例(Wait%是CPU空閑狀態(tài)的一種尊蚁,當(dāng)CPU處于空閑狀態(tài)而又有進(jìn)程處于D狀態(tài)(不可中斷睡眠)時(shí)亡笑,系統(tǒng)會(huì)統(tǒng)計(jì)這時(shí)的時(shí)間,并計(jì)算到Wait%里)横朋,Wait%不是一個(gè)時(shí)間值仑乌,而是時(shí)間的比例,因此在同樣I/O Wait時(shí)間下琴锭,服務(wù)器CPU越多晰甚,Wait%越低,它體現(xiàn)了I/O操作與計(jì)算操作之間的比例决帖。對(duì)I/O密集型的應(yīng)用來(lái)說(shuō)一般Wait%較高厕九,且Sheet PROC中Blocked也較高,這時(shí)需關(guān)注是什么導(dǎo)致了過(guò)多的進(jìn)程等待地回。
Idle%:顯示采集間隔內(nèi)所有CPU處于空閑Time的占比(Avg扁远、Max)。
CPU%:顯示采集間隔內(nèi)所有CPU的user%+system%刻像。
- AAA
顯示當(dāng)前服務(wù)器基本信息畅买,如操作系統(tǒng)版本,當(dāng)前LPAR名细睡,采集時(shí)間和次數(shù)等如下圖
- StrayLines
顯示本次nmon分析文件中未生成的采集值谷羞。
- BBBP
由于本Sheet內(nèi)容較多,見下圖(部分截圖):
如上圖纹冤,顯示當(dāng)前服務(wù)器的基礎(chǔ)資源信息洒宝,當(dāng)前服務(wù)器操作系統(tǒng)是cent os版本
MemTotal:顯示當(dāng)前服務(wù)器物理內(nèi)存大小,本服務(wù)器有8063180 KB≈7874 MB左右萌京。
MemFree:顯示當(dāng)前服務(wù)器的空閑內(nèi)存大小,本服務(wù)器有5052336 KB≈4934 MB左右宏浩。
Buffers:顯示當(dāng)前服務(wù)器Buffer(在內(nèi)存中要寫到磁盤上的)緩存的大小知残,本服務(wù)器有459108 KB≈448 MB左右,注意比庄,這里的數(shù)值僅是采集初期的靜態(tài)值求妹,具體Buffer的變化還需要看Sheet MEM乏盐。
Cached:顯示當(dāng)前服務(wù)器Cache緩存的大小(從磁盤讀取到內(nèi)存的)制恍,本服務(wù)器有1032572 KB≈1008 MB左右父能。,這里的數(shù)值僅是采集初期的靜態(tài)值净神,具體Buffer的變化還需要看Sheet MEM何吝。
SwapCached:顯示當(dāng)前服務(wù)器Swap空間已緩存的大小,本服務(wù)器尚未使用到Swap空間鹃唯。
SwapTotal:顯示當(dāng)前服務(wù)器Swap空間大小爱榕,本服務(wù)器有8385532 KB≈8189 MB左右。
SwapFree:顯示當(dāng)前服務(wù)器Swap空閑空間大小坡慌,本服務(wù)器Swap空間都空閑黔酥。
由于執(zhí)行nmon時(shí)所屬系統(tǒng)組權(quán)限不同,因此BBBP里磁盤的信息可能會(huì)缺失洪橘,如截圖一是root權(quán)限執(zhí)行nmon生成文件后顯示的磁盤信息跪者,可以看到每個(gè)磁盤的大小及磁盤下的分區(qū)用途。
- CPU_ALL
顯示當(dāng)前服務(wù)器所有CPU在采集時(shí)間段內(nèi)的利用率熄求,按時(shí)間及User%渣玲、System%、Wait%顯示抡四。
當(dāng)前服務(wù)器共有4顆CPU(Core)8核心柜蜈。
一般情況下CPU利用率里User%應(yīng)占70%左右,Sys%應(yīng)占30%左右指巡,如果Sys%或Wait%占比等于或超過(guò)了User%則應(yīng)該關(guān)注是什么引起了過(guò)多的系統(tǒng)消耗淑履,可能是大量的Disk或Network I/O。
如下圖藻雪,這個(gè)項(xiàng)目隨著并發(fā)的增加秘噪,應(yīng)用進(jìn)程對(duì)CPU的消耗都增加在Wait%上,經(jīng)排查是由于NFS讀寫遇到瓶頸導(dǎo)致:
CPU_SUMM
顯示當(dāng)前服務(wù)器所有CPU的利用率勉耀,當(dāng)前服務(wù)器共有4個(gè)CPU(Core)指煎,每個(gè)CPU負(fù)載有所不同。DISK_SUMM
按采集時(shí)間顯示所有磁盤和分區(qū)的Read/Write的速率(KB/s)和所有磁盤和分區(qū)的I/O率便斥。某一采集時(shí)間點(diǎn)的IO/sec等于Sheet DISKXFER中該時(shí)間點(diǎn)上所有磁盤和分區(qū)的IO/sec之和至壤。因此,這一時(shí)間點(diǎn)上的I/O值是重復(fù)的枢纠!另外像街,本Sheet中的I/O不包括NFS里的I/O。
如上圖的WAvg按nmon Guide中的說(shuō)法是為了去掉采集值中的零值以便貼近真實(shí)平均值,但WAvg的公式(對(duì)計(jì)算列中所有值取平方后加合镰绎,再除以列中所有值之和)卻不是單純的去掉零值脓斩,這里可以理解為WAvg比Avg更貼近資源消耗的均值,因此以后所有資源Sheet中都推薦關(guān)注WAvg畴栖。
IBM Redpaper《Linux Performance and Tuning Guidelines》中介紹Linux的I/O子系統(tǒng)架構(gòu)如下:
nmon(包括iostat)對(duì)系統(tǒng)I/O的指標(biāo)截取大部分來(lái)自/proc/diskstats随静,而這些值來(lái)自block layer層,LVM里的Logical Volume會(huì)“visible as a standard block device”吗讶,因此真實(shí)的磁盤燎猛,LVM的邏輯卷,分區(qū)等在這里都會(huì)顯示关翎,在nmon計(jì)算總值時(shí)會(huì)被重復(fù)統(tǒng)計(jì)扛门。
Disk Read/Write KB是同一采集時(shí)間點(diǎn)下Sheet DISKREAD、DISKWRITE里該行(所有磁盤和分區(qū))數(shù)值之和纵寝,必然包括了重復(fù)值论寨,例如某一時(shí)刻sda磁盤共write 1000 KB,其中sda1分區(qū)write 700 KB爽茴,sda3分區(qū)write 300 KB葬凳,這一時(shí)刻Disk Write應(yīng)是1000 KB,但這里卻會(huì)重復(fù)統(tǒng)計(jì)分區(qū)數(shù)值室奏,導(dǎo)致顯示為Disk Write 2000 KB火焰。Disk I/O也存在同樣的問(wèn)題!
還需注意一點(diǎn)胧沫,部分nmon生成文件里圖中標(biāo)題指標(biāo)為kb(小寫)/s昌简,但實(shí)際統(tǒng)計(jì)的卻是KB(大寫)/s。