linux io负载解决方法,看你的linux负载 io值
網(wǎng)站的很多性能問(wèn)題最終都會(huì)歸結(jié)到IO頭上,所以說(shuō)理解iostat命令是非常有必要的。
小技巧:你知道iostat是從哪里得到IO相關(guān)信息的嗎?使用strace命令能跟蹤到答案:
shell> strace -eopen iostat
open("/proc/diskstats", O_RDONLY)
注:關(guān)于diskstats的說(shuō)明,參見(jiàn)官方文檔(field1 ~ field11)。
我最常用的iostat命令格式是:『iostat -dx 1』,意思是每隔一秒顯示一次IO擴(kuò)展信息。
shell> iostat -dx 1
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s
sda 0.18 37.71 0.65 2.63 50.18 322.08
avgrq-sz avgqu-sz await svctm %util
113.46 0.35 107.49 1.67 0.55
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s
sda 0.00 4208.00 0.00 165.00 0.00 163872.00
avgrq-sz avgqu-sz await svctm %util
993.16 119.54 1144.36 6.07 100.10
注:開頭顯示的是自系統(tǒng)啟動(dòng)開始的平均值,后面顯示的是每段時(shí)間間隔里的平均值。
如果你的操作系統(tǒng)里沒(méi)有iostat命令的話,除了從源代碼安裝,還可以使用下面方式:
Centos/Fedora的安裝方式是:yum install sysstat
Debian/Ubuntu的安裝方式是:aptitude install sysstat
介紹一下相關(guān)參數(shù)的含義:
rrqm/s:隊(duì)列中每秒鐘合并的讀請(qǐng)求數(shù)量
wrqm/s:隊(duì)列中每秒鐘合并的寫請(qǐng)求數(shù)量
r/s:每秒鐘完成的讀請(qǐng)求數(shù)量
w/s:每秒鐘完成的寫請(qǐng)求數(shù)量
rsec/s:每秒鐘讀取的扇區(qū)數(shù)量
wsec/s:每秒鐘寫入的扇區(qū)數(shù)量
avgrq-sz:平均請(qǐng)求數(shù)據(jù)的大小
avgqu-sz:平均請(qǐng)求隊(duì)列的長(zhǎng)度
await:平均每次請(qǐng)求的等待時(shí)間
svctm:平均每次請(qǐng)求的服務(wù)時(shí)間
util:設(shè)備的利用率
注:建議對(duì)照源代碼來(lái)記憶這些參數(shù)都是如何計(jì)算出來(lái)的。
關(guān)于這些參數(shù),相對(duì)重要的是后面幾個(gè),具體來(lái)說(shuō)是:util,svctm,await,avgqu-sz:
util是設(shè)備的利用率。如果它接近100%,通常說(shuō)明設(shè)備能力趨于飽和(并不絕對(duì),比如設(shè)備有寫緩存)。有時(shí)候可能會(huì)出現(xiàn)大于100%的情況,這多半是計(jì)算時(shí)四舍五入引起的,但如果是磁盤陣列等多盤系統(tǒng),因?yàn)榫哂胁l(fā)IO操作的能力,也會(huì)出現(xiàn)大于100%的情況。
svctm是平均每次請(qǐng)求的服務(wù)時(shí)間。從源代碼里可以看出:(r/s+w/s)*(svctm/1000)=util。舉例子:如果util達(dá)到100%,那么此時(shí)svctm=1000/(r/s+w/s),假設(shè)IOPS是1000,那么svctm大概在1毫秒左右,如果長(zhǎng)時(shí)間大于這個(gè)數(shù)值,說(shuō)明系統(tǒng)出了問(wèn)題。不過(guò)前面已經(jīng)說(shuō)過(guò)在磁盤陣列等多盤系統(tǒng)中util可能出現(xiàn)偏大的情況,所以svctm相應(yīng)的也可能偏大。
await是平均每次請(qǐng)求的等待時(shí)間。這個(gè)時(shí)間包括了隊(duì)列時(shí)間和服務(wù)時(shí)間,也就是說(shuō),一般情況下,await大于svctm,它們的差值越小,則說(shuō)明隊(duì)列時(shí)間越短,反之差值越大,隊(duì)列時(shí)間越長(zhǎng),說(shuō)明系統(tǒng)出了問(wèn)題。
avgqu-sz是平均請(qǐng)求隊(duì)列的長(zhǎng)度。毫無(wú)疑問(wèn),隊(duì)列長(zhǎng)度越短越好。
說(shuō)明:svctm參數(shù)在未來(lái)某個(gè)版本的iostat會(huì)被刪除,詳見(jiàn)官方文檔。
另外,有時(shí)候iostat會(huì)顯示一些很離譜的結(jié)果,具體原因詳見(jiàn)官方FAQ給出的解釋。
原文:http://huoding.com/2011/07/13/91
總結(jié)
以上是生活随笔為你收集整理的linux io负载解决方法,看你的linux负载 io值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux隔行打印文本,详解正则表达式及
- 下一篇: linux6.5dns装什么,1、RHE