> OK, I also know there is a queue building up on the dual-core systems,
> but hardly any queueing on the single-core.

Sounds like some sort of resource contention issue.

Are there any parts of SA / spamd that all children access but that only
exists as a single instance?

> Quite probably, but the symptoms are showing in SA, not in the OS :-)
> Also, in 3.1.7 this all worked just fine, although with a different
> kernel version.

You don't say what OS it is, but some have had internal resource
contention issues.

For instance we had this type of problem several years ago with a
Mach-based UNIX implementation on an 8 CPU box. The DBMS was optimised
for data warehouse schemas with large, segmented fact tables. It
minimised query times by launching a child process for each segment of
the fact table. Each table, table segment and index was a separate file
in a standard file system, so there was a huge burst of file opening
activity each time a query started.

We had bad performance that was eventually tracked down to the child
processes contending for access to the OS's single instance of the
single threaded module that implemented lstat(). If we'd been running on
a single CPU this contention could not have happened.