When I run top -bi, where the parameter -i means "ignore idle processes", the resulted list(see below) of processes are either R or D, although there're S processes at that time.

So, why uninterruptible sleep is not counted as "idle"? And, it seems that "load average" equals the number of R processes plus the number of D processes?

top - 17:47:44 up 141 days, 14:29,  2 users,  load average: 4.10, 4.18, 4.17
Tasks: 224 total,   1 running, 223 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.4%sy,  0.0%ni, 87.2%id, 12.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16432240k total, 16345816k used,    86424k free,  4934652k buffers
Swap: 16386292k total,     6996k used, 16379296k free,    71432k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                             
7479 root      18   0 1357m 1.1g  904 D    1  7.0  10:27.86 rsync                                                               
7463 root      18   0 1315m 1.0g  840 D    1  6.6   9:45.83 rsync                                                               
7469 root      18   0 1088m 889m  840 D    0  5.5   8:10.20 rsync                                                               
7524 root      18   0 1106m 895m  840 D    0  5.6   8:13.60 rsync                                                               
30958 root      15   0 12720 1148  788 R    0  0.0   0:01.07 top

2 Answers 2


Because 'uninterruptible sleep' doesn't mean idle or sleeping. The ps manpage explains it already: usually IO, which in the case of rsync is hardly a surprise.


When a process is in interruptible sleep, it means the kernel is doing something (input/output, mostly) that has been requested by the process. The process is sleeping while the kernel processes the request. While the process itself is idle, the kernel is busy on behalf of the process, so the process is busy by proxy. Both user mode code (R) and kernel mode code (D) count as busy.

  • 2
    Very often uninterruptible sleep means that both the process and the kernel code are waiting for an I/O operation (e.g. disk head seeking) and other processes and kernel code can be executed at this time so it does not always mean "busy". Nov 14, 2013 at 19:27
  • very cool addition!
    – Alex
    May 20, 2023 at 16:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .