Woaw! This morning I was virtually unable to boot into my system. Obviously this night more emails were sent to me than Spamassassin was able to deal with. When finally 'top' came up, I saw about 30 or so 'spamd' processes and it took about 15 minutes till all mails were processed (but I had to use SysRq to reboot in between because of a lock-up and the second attempt ended with X and mysqld being killed because no memory was left).
Then the bright idea occured to me to rearrange my
.procmailrc. Initially it read:
* ^X-Spam-Flag: YES
* ^Delivered-to: mailing list email@example.com
* ^Delivered-to: mailing list firstname.lastname@example.org
# all other mail-sorting rules followed
By moving some of the mailings-lists that produce a lot of traffic (p5porters, email@example.com etc.) in front of 'spamd', I now hope that those mails are no longer processed by Spamassassin. At least the porters-list is guaranteed to be spam-free. Not sure about firstname.lastname@example.org though.
I think that Spamassassin needs an in-built ressource-limiter like: never spawn more than 30 processed, never use more than 50% of available memory and CPU altogether. I really don't care if I have to wait some time for all my mails to be checked and sorted into the respective mailboxes in the morning. However, what I care about is if my system stands still for 15 minutes and starts killing processes.
Anyway, Nicholas' suggestion to use Spamassassin as a real-world replacement for perlbench is a very good idea!