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.
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.