On 09/07/2010 08:07 PM, Victor Duchovni wrote:
On Tue, Sep 07, 2010 at 06:13:23PM +0200, lst_ho...@kwsoft.de wrote:

This question has no answer, except to say that on typical commodity
server hardware you are unlikely to send more than ~3,000 msgs/sec per
Postfix instance. A queue-manager performance test I ran 2 years ago
showed that at near ~3000 msgs/sec, the queue-manager is working non-stop
and cannot go any faster (with a queue on RAM disk).
Just curious: Is it clear where this limit come from eg. is it dependant of
the performance which a single core can deliever or is bound by memory
latency or some others?
Single-core CPU limit. The system had 4 CPUs and the load peaked at ~25%.
The queue manager is single-threaded, and must do a fair amount of message
envelope processing. So the current design tops out at ~2-3k msgs/sec,
which is substantially faster than other constraints on real systems, so
the queue manager is not your bottleneck in real systems.

One could design a queue manager in which message parsing, ... is done
in multiple processes, and only the scheduling is done by the central
process. Such a queue manager would scale to higher loads, but this is
simply not a useful direction at this time.


So running 1 instance per CPU (for queue-bound installations) might scale to multi-core setups ? I'm curious which part of the queue process is not thread-safe - or perhaps it's just hard to do so.

J.

Reply via email to