disk wait mystery

Ronald Klop ronald-freebsd8 at klop.yi.org
Wed Jan 30 11:01:45 UTC 2013


On Wed, 30 Jan 2013 11:37:29 +0100, Brett Wynkoop <wynkoop at wynn.com> wrote:

> On Wed, 30 Jan 2013 10:39:37 +0100
> "Ronald Klop" <ronald-freebsd8 at klop.yi.org> wrote:
>
>> On Wed, 30 Jan 2013 06:18:49 +0100, Brett Wynkoop <wynkoop at wynn.com>
>> wrote:
>>
>> > Greeting-
>> >
>> > Can anyone figure out why a mainly idle bone with only 2 user
>> > shells via ssh running would have so much in disk wait?
>> >
>> > wynkoop at beaglebone:~ % !ps
>> > ps ax
>> > PID TT  STAT     TIME COMMAND
>> >   0  -  DLs   0:00.02 [kernel]
>> >   1  -  ILs   0:00.20 /sbin/init --
>> >   2  -  DL    0:00.00 [xpt_thrd]
>> >   3  -  DL    0:01.92 [task: mmc/sd card]
>> >   4  -  DL    0:00.01 [pagedaemon]
>> >   5  -  DL    0:00.00 [vmdaemon]
>> >   6  -  DL    0:00.00 [pagezero]
>> >   7  -  DL    0:00.02 [bufdaemon]
>> >   8  -  DL    0:00.02 [vnlru]
>> >   9  -  DL    0:00.10 [syncer]
>> >  10  -  RL   17:15.90 [idle]
>> >  11  -  WL    0:07.91 [intr]
>> >  12  -  DL    0:00.17 [geom]
>> >  13  -  DL    0:00.21 [yarrow]
>> >  14  -  DL    0:00.06 [softdepflush]
>> >  15  -  DL    0:00.15 [schedcpu]
>> > 106  -  DL    0:00.00 [md0]
>> > 410  -  Is    0:00.06 dhclient: cpsw0 [priv] (dhclient)
>> > 448  -  Is    0:00.07 dhclient: cpsw0 (dhclient)
>> > 449  -  Is    0:00.01 /sbin/devd
>> > 634  -  Is    0:00.04 /usr/sbin/sshd
>> > 638  -  Is    0:00.55 /usr/sbin/cron -s
>> > 682  -  Is    0:00.64 sshd: wynkoop [priv] (sshd)
>> > 685  -  S     0:00.29 sshd: wynkoop at pts/0 (sshd)
>> > 678 u0  Is+   0:00.19 /usr/libexec/getty std.9600 ttyu0
>> > 686  0  Ss    0:00.74 -csh (csh)
>> > 831  0  R+    0:00.16 ps ax
>> > wynkoop at beaglebone:~ %
>> >
>> > -Brett
>> >
>>
>> Hi,
>>
>> Maybe I missed a previous email, but you don't provide much
>> information for people to think about.
>> As a start you might show the 'disk wait' output.
>>
>> Ronald.
>>
>
> Ronald-
>
> From the ps man page:
>               D       Marks a process in disk (or other short term,
>               uninterruptible) wait.
>
>
> Note all the D entries in the above ps output.
>
> -Brett

Aha. My amd64 has the same. I think the ps man page is not very clear. The  
code src/bin/ps/print.c says this.

         case SSLEEP:
                 if (tdflags & TDF_SINTR)        /* interruptable (long) */
                         *cp = k->ki_p->ki_slptime >= MAXSLP ? 'I' : 'S';
                 else
                         *cp = 'D';
                 break;

No mention about disks. Just an uninterruptible sleep (which can be a wait  
for a disk, but also for other type of alarms/interrupts/locks/etc.). So  
you have waiting kernel threads/processes. Which is called 'idle'.

Ronald.


More information about the freebsd-arm mailing list