檢視硬碟IO訪問負荷的方法

zhuachen發表於2011-10-19

首先 、用top命令檢視
top - 16:15:05 up 6 days, 6:25, 2 users, load average: 1.45, 1.77, 2.14
Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2% us, 0.2% sy, 0.0% ni, 86.9% id, 12.6% wa, 0.0% hi, 0.0% si
Mem: 4037872k total, 4003648k used, 34224k free, 5512k buffers
Swap: 7164948k total, 629192k used, 6535756k free, 3511184k cached
檢視12.6% wa
IO等待所佔用的CPU時間的百分比,高過30%時IO壓力高
其次、 用 iostat -x 1 10
avg-cpu: %user %nice %sys %iowait %idle
0.00 0.00 0.25 33.46 66.29
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 1122 17.00 9.00 192.00 9216.00 96.00 4608.00 123.79 137.23 1033.43 13.17 100.10
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

檢視%util 100.10 %idle 66.29
如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁碟可能存在瓶頸。
idle小於70% IO壓力就較大了,一般讀取速度有較多的wait.
同時可以結合vmstat 檢視檢視b引數(等待資源的程式數)
vmstat 1

如果你想對硬碟做一個IO負荷的壓力測試可以用如下命令:

time有計時作用,dd用於複製,從if讀出,寫到of。if=/dev/zero不產生IO,因此可以用來測試純寫速度。同理of=/dev/null不產生IO,可以用來測試純讀速度。bs是每次讀或寫的大小,即一個塊的大小,count是讀寫塊的數量。

1.測/目錄所在磁碟的純寫速度:

# time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file

2.測/目錄所在磁碟的純讀速度:

# dd if=/kvm/ftp/other/1Gb.file bs=64k |dd of=/dev/null

3.測讀、寫速度:

# dd if=/vat/test of=/oradata/test1 bs=64k

# time dd if=/dev/zero bs=1M count=2048 of=direct_2G

(此命令為在當前目錄下新建一個2G的檔案)

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23682146/viewspace-1055809/,如需轉載,請註明出處,否則將追究法律責任。

相關文章