On Wed, Dec 15, 2010 at 01:37:48PM -0500, Dave Brodin wrote:

> I ran the following command:
>
> time /usr/local/bin/smtp-source -s 10 -l 10120 -m 500 -c \
>       -f t...@bluemarble.net -t dbro...@bluemarble.net localhost:25

OK, this is smtp-source with 10 (modest) parallel sessions,
10KB (modest) messages, total 500 messages. This should typically
accept mail at 100+ messages a second finishing in under 5 seconds.

> And got the following output at the end:
>
> real    0m58.261s
> user    0m0.055s
> sys     0m0.126s

This is unreasonably slow.

> During the test, CPU went from 100% idle to 0.0% idle (see top sample 
> below):

CPU consumption is unreasonably high.

> CPU:  1.9% user,  0.0% nice, 98.1% system,  0.0% interrupt,  0.0% idle

All in the kernel.

>  3350 postfix          1 100    0 37580K  5572K RUN     4   0:08 25.32% 
> smtpd
>  3353 postfix          1 100    0 37580K  5572K RUN     7   0:08 25.31% 
> smtpd
>  3351 postfix          1  20    0 37580K  5572K lockf   3   0:07 23.97% 
> smtpd

The SMTP servers are constantly waking spinning on the acceptor lock,
the O/S continuously delivers events even though there is nothing to do.

>  3367 postfix          1   4    0 37580K  5572K kqread  4   0:06 22.54% 
> smtpd

More of same, the kqueue logic in the kernel keeps delivering
notifications.

>  3425 postfix          1  20    0 16052K  3440K lockf   0   0:00 15.89% 
> cleanup
>  3374 postfix          1  20    0 16052K  3440K lockf   0   0:00  0.20% 
> cleanup
>  3365 postfix          1   4    0 16052K  3440K kqread  1   0:00  0.13% 
> cleanup

Cleanup is also spinning looking for events. Your kqueue support is
busted. Disable kqueue support, by adding "-DNO_KQUEUE" to CCARGS.
If that helps, try a stable FreeBSD release, perhaps kqueue is less
unwell there...

-- 
        Viktor.

Reply via email to