天天看点

关于iostat参数说明

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。

继续阅读