這篇文章給大家分享的是有關(guān)Linux性能監(jiān)控之io怎么看的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)是專業(yè)的昌都網(wǎng)站建設(shè)公司,昌都接單;提供成都網(wǎng)站設(shè)計、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行昌都網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
Linux性能監(jiān)控情況1:同一時間進(jìn)行大量的I/O操作
在這種情況時我們會發(fā)現(xiàn)CPU的wa時間百分比會上升,證明系統(tǒng)的idle時間大部分都是在等待I/O操作。
# vmstat 1
procs -----memory----- ---swap---io---- --system--cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
3 2 0 55452 9236 1739020 0 0 9352 0 2580 8771 20 24 0 57
2 3 0 53888 9232 1740836 0 0 14860 0 2642 8954 23 25 0 52
2 2 0 51856 9212 1742928 0 0 12688 0 2636 8487 23 25 0 52
從這個輸出我們可以看到CPU有50%的時間都在等待I/O操作,我們還可以看到系統(tǒng)的bi值很大,證明系統(tǒng)有大量的I/O請求將磁盤內(nèi)容讀入內(nèi)存。
沒有很好的工具能看到到底是哪個進(jìn)程在進(jìn)行I/O讀寫。但我們可以通過top命令的輸出來猜測
# top -d 1
top - 19:45:07 up 1:40, 3 users, load average: 6.36, 5.87, 4.40
Tasks: 119 total, 3 running, 116 sleeping, 0 stopped, 0 zombie
Cpu(s): 5.9% us, 87.1% sy, 0.0% ni, 0.0% id, 5.9% wa, 1.0% hi, 0.0% si
Mem: 2075672k total, 2022668k used, 53004k free, 7156k buffers
Swap: 2031608k total, 132k used, 2031476k free, 1709372k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ nFLT COMMAND
3069 root 5 -10 450m 303m 280m S 61.5 15.0 10:56.68 4562 vmware-vmx
3016 root 5 -10 447m 300m 280m S 21.8 14.8 12:22.83 3978 vmware-vmx
3494 root 5 -10 402m 255m 251m S 3.0 12.6 1:08.65 3829 vmware-vmx
3624 root 5 -10 401m 256m 251m S 1.0 12.6 0:29.92 3747 vmware-vmx
將top的輸出通過faults進(jìn)行排序。我們可以看到vmware產(chǎn)生最多的page faults。也就是說它進(jìn)行了大量的IO操作。
Linux性能監(jiān)控情況2:管道太小
任何I/O操作都需要一定的時間,而且這些時間對于硬盤來說是確定的,它包含磁盤旋轉(zhuǎn)的延時RD(rotation delay)和磁頭搜索時間DS(disk seek)。RD由磁盤轉(zhuǎn)速(RPM)決定。RD是磁盤旋轉(zhuǎn)一周所需時間的一半。如RPM為10000.
RPS=RPM/60=166
1/166=0.0006=6ms 磁盤旋轉(zhuǎn)一周要6毫秒
RD=6ms/2=3ms
磁盤平均搜索時間是3ms,數(shù)據(jù)傳輸?shù)钠骄訒r是2ms,這樣一次I/O操作的平均時間是:
3ms+3ms+2ms=8ms
IOPS=1000/8=125 這塊磁盤的每秒IO數(shù)(IOPS)為125。所以對于10000RPM的磁盤來說它所能承受的IO操作在IOPS在120~150之間。如果系統(tǒng)的I/O請求超過這個值,就會使磁盤成為系統(tǒng)的瓶頸。
對與系統(tǒng)而言有兩種不同種類的I/O壓力,連續(xù)I/O和隨機(jī)I/O。
連續(xù)I/O常常出現(xiàn)在企業(yè)級數(shù)據(jù)庫這樣的應(yīng)用中,需要連續(xù)的讀取大量數(shù)據(jù)。這種系統(tǒng)的性能依靠它讀取和移動數(shù)據(jù)的大小和快慢。我們用iostat來監(jiān)控,會發(fā)現(xiàn)rKB/s,wKB/s會很高。
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
/dev/sda 0.00 12891.43 0.00 105.71 0.00 106080.00 0.00 53040.00 1003.46 1099.43 3442.43 26.49 280.00
從輸出我們看到w/s=105,wKB/s=53040.所以53040/105=505KB per I/O.
對于隨機(jī)I/O的系統(tǒng)來說性能的關(guān)注點不在搜傳輸數(shù)據(jù)的大小和速度,而是在磁盤的IOPS。這類系統(tǒng)的I/O請求比較小但是數(shù)量很大,如Web服務(wù)器和Mail服務(wù)器。他們的性能主要依賴每秒鐘可處理的請求數(shù):
# iostat -x 1
avg-cpu: %user %nice %sys %idle
2.04 0.00 97.96 0.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
/dev/sda 0.00 633.67 3.06 102.31 24.49 5281.63 12.24 2640.82 288.89 73.67 113.89 27.22 50.00
從輸出我們看到w/s=102,wKB/s=2640.所以2640/102=23KB per I/O.因此對于連續(xù)I/O系統(tǒng)來說我們要關(guān)注系統(tǒng)讀取大量數(shù)據(jù)的能力即KB per request.對于隨機(jī)I/O系統(tǒng)我們注重IOPS值.
感謝各位的閱讀!關(guān)于“Linux性能監(jiān)控之io怎么看”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!