Linux性能的監控之IO篇

| | 發表迴響 | 引用 (0)
關於Linux性能監控相信大家已經小有瞭解,對於IO篇,讓我們先分析一些具體的情況,在這些情況下I/O會成為系統的瓶頸。我們會用到工具top,vmstat,iostat,sar等。每一個工具的輸出都從不同的方面反映除系統的性能情況。

Linux性能監控情況1:同一時間進行大量的I/O操作

在這種情況時我們會發現CPU的wa時間百分比會上升,證明系統的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操作,我們還可以看到系統的bi值很大,證明系統有大量的I/O請求將磁盤內容讀入內存。

沒有很好的工具能看到到底是哪個進程在進行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進行排序。我們可以看到vmware產生最多的page faults。也就是說它進行了大量的IO操作。

Linux性能監控情況2:管道太小

任何I/O操作都需要一定的時間,而且這些時間對於硬盤來說是確定的,它包含磁盤旋轉的延時RD(rotation delay)和磁頭搜索時間DS(disk seek)。RD由磁盤轉速(RPM)決定。RD是磁盤旋轉一週所需時間的一半。如RPM為10000。

RPS=RPM/60=166

1/166=0.0006=6ms 磁盤旋轉一週要6毫秒

RD=6ms/2=3ms

磁盤平均搜索時間是3ms,數據傳輸的平均延時是2ms,這樣一次I/O操作的平均時間是:

3ms+3ms+2ms=8ms

IOPS=1000/8=125 這塊磁盤的每秒IO數(IOPS)為125。所以對於10000RPM的磁盤來說它所能承受的IO操作在IOPS在120~150之間。如果系統的I/O請求超過這個值,就會使磁盤成為系統的瓶頸。

對與系統而言有兩種不同種類的I/O壓力,連續I/O和隨機I/O。

連續I/O常常出現在企業級數據庫這樣的應用中,需要連續的讀取大量數據。這種系統的性能依靠它讀取和移動數據的大小和快慢。我們用iostat來監控,會發現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。

對於隨機I/O的系統來說性能的關注點不在搜傳輸數據的大小和速度,而是在磁盤的IOPS。這類系統的I/O請求比較小但是數量很大,如Web服務器和Mail服務器。他們的性能主要依賴每秒鐘可處理的請求數:

# 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。因此對於連續I/O系統來說我們要關注系統讀取大量數據的能力即KB per request。對於隨機I/O系統我們注重IOPS值。

人生最幸福的事情,大家看法都不一樣,新人們都期望在合適的婚宴場地上舉辦婚宴,擁有幸福的回憶。而對上班族來說,Office Furniture屏風的合理設置,良好的氛圍,舒適的辦公環境是最重要的。熟女必學十大肌膚抗老方式 相學從那些方面判斷氣運吉凶?

文章分類

日曆

    « 十月 2011 »
              1 2
    3 4 5 6 7 8 9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30
    31            

網站連結

一般