判斷磁盤極限性能誤區(qū):只通過(guò)iostat 中的 %util 指標(biāo)確定磁盤是否達(dá)到帶寬或iops極限
背景:
在判斷磁盤是否達(dá)到極限性能時(shí),總有人通過(guò) iostat -x 中的 %util 指標(biāo)來(lái)確認(rèn)磁盤是否帶寬帶寬或IOPS瓶頸,其實(shí)這是不對(duì)的,特做如下說(shuō)明:
結(jié)論:
iostat 中的 %util 基本已經(jīng)沒(méi)有任何作用了,svctm也沒(méi)什么參考意義
磁盤是否達(dá)到真正極限瓶頸,需要參考通過(guò)fio等工具壓測(cè)出的極限帶寬和IOPS值
%util與硬盤設(shè)備飽和度
%util表示該設(shè)備有I/O(即非空閑)的時(shí)間比率,不考慮I/O有多少,只考慮有沒(méi)有。
由于現(xiàn)代硬盤設(shè)備都有并行處理多個(gè)I/O請(qǐng)求的能力,所以%util即使達(dá)到100%也不意味著設(shè)備飽和了。
舉個(gè)簡(jiǎn)化的例子:某硬盤處理單個(gè)I/O需要0.1秒,有能力同時(shí)處理10個(gè)I/O請(qǐng)求,那么當(dāng)10個(gè)I/O請(qǐng)求依次順序提交的時(shí)候,需要1秒才能全部完成,在1秒的采樣周期里%util達(dá)到100%;而如果10個(gè)I/O請(qǐng)求一次性提交的話,0.1秒就全部完成,在1秒的采樣周期里%util只有10%??梢?jiàn),即使%util高達(dá)100%,硬盤也仍然有可能還有余力處理更多的I/O請(qǐng)求,即沒(méi)有達(dá)到飽和狀態(tài)。
那么iostat(1)有沒(méi)有哪個(gè)指標(biāo)可以衡量硬盤設(shè)備的飽和程度呢?很遺憾,沒(méi)有。
參考文章:
【1】容易被誤讀的IOSTAT:http://linuxperf.com/?p=156
【2】深入理解iostat:https://bean-li.github.io/dive-into-iostat/
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。