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.