Any specific reasons why high iowaits are on specific CPUs instead of balanced across all cpus ?

https://access.redhat.com/solutions/84553

 

環境

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6

問題

This system has 32 processors, in the sar output I can see that only for CPU-15 and CPU-16 IOWAIT is very high , other CPU's are almost idle.

Raw

                  CPU     %user     %nice   %system   %iowait    %steal     %idle
19:21:01            0      0.00      0.00      0.00      0.00      0.00    100.00
19:21:01            1      0.00      0.00      0.00      0.00      0.00    100.00
19:21:01            2      0.00      0.00      0.00      0.00      0.00    100.00
19:21:01            3      0.00      0.00      0.00      0.00      0.00    100.00
19:21:01            4      0.00      0.00      0.00      0.00      0.00    100.00
19:21:01            5      0.00      0.00      0.00      0.00      0.00    100.00
19:21:01           15      0.22      0.00      0.22     99.57      0.00      0.00
19:21:01           16      0.22      0.00      0.67     99.12      0.00      0.00

Any specific reasons why high iowaits are on specific CPUs instead of balanced across all cpus ?

決議

This is a expected behaviour of a Linux kernel. When any cpu deals with any task and that task needs to do a IO transaction then cpu issues a request to a IO controller and now it is IO controllers responsibility to serve this request, so as much time the IO controller will take to accomplish the request that much of time that task will be in 'D' state and cpu will be just waiting for IO (called as IO_WAIT).

And if system has number of processors then the cpu which is serving to that particular task will wait for IO and will be idle for that amount of time, the other processors will be assigned to other running tasks, so seeing a IOWAIT for particular CPU's is expected behaviour of a Linux kernel.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章