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