iowait% %Idle avgqu-sz await Svctm %util
Iowait值一直比較低,并且沒有太大變化,說明這個值表示的是cpu用來等待io的時間,而在這次測試中,用的資料量是1k,是以速度很快,不會發生嚴重的io阻塞,這個值應該是在一次的io資料比較大的情況下才會變大。在iowait的概念中,它表示在一個采樣周期内有百分之幾的時間屬于以下情況:CPU空閑、并且有仍未完成的I/O請求。而在最開始0個線程的時候,cpu比較空閑,這一點可以從idle的值得到。是以這時候iowait很小。之後加大線程量,idle不斷減小,表示cpu越來越忙碌,但是iowait并沒有增大,就是因為cpu将絕大多數的時間都用在了處理線程上,而不是處理io。如果加大io的資料量,iowait應該才會增大。是以通過idle和iowait兩個值,應該可以看出cpu的使用的空閑率和cpu的使用中有多少是用來等待io的。同時也可以對比一下%system參數,這個參數表示CPU處在核心态執行程序的時間百分比,是以這個值也可以看出cpu是繁忙狀态還是等待io狀态。
%util的值一直在增加,磁盤的使用率越來越高,說明對io操作越來越頻繁,對磁盤資源的使用越來越多,這與增加對于io操作的線程是一緻的。
await 和avgqu-sz的走向是一緻的,因為await和avgqu-sz表達的意思是相似的。都可以表示io阻塞程度。avgqu-sz表示io等待隊列的長度,await表示io等待和處理的時間。這兩個值比較大說明io比較多。這也與增加對于io操作的線程是一緻的。
是以主要通過%util、await、avgqu-sz這三個值可以看出磁盤的繁忙程度和io的阻塞程度,iowait和idle可以看出資料量的大小。即idle比較大,但是iowait比較小,說明資料量(一次讀寫的大小)比較小,cpu比較繁忙,并不需要等待io。而iowait比較大,說明資料量可能比較大,cpu需要花一定時間等待io。