Hello everybody!

I have a high-performance server (dual quad-core Xeon 2.8Ghz + 16GB RAM + 2SCSI 
disks 140Gb), RedHat Enterprise Linux 5.4, software RAID1 + Postfix 2.5.9.
This server serves only smtp traffic. The only thing postfix should do - 
receive mails for one user and send it to local script via pipe. Like this:

user:    |/usr/local/bin/script

The flow is about 250-300 mails per second.Everything is going fine, if there 
is no queue. But when queue grows to 10000+ letters (for some reasons), postfix 
loses control of it. deferred queue is null, active queue is almost null, but 
incoming queue is growing and growing. When incoming queue is about 100k+ 
letters, postfix just can't pick it up, until I stop incoming traffic. I'm 
wondering, why such a server can't handle this workload? Even if I do the 
following:

 user:   /dev/null

postfix can't get the incoming queue over, until I reject incoming smtp 
traffic... When I tried to figure out the bottleneck, I saw, that there is 
about 100-150 smtpd processes, 100-150 cleanup process, but there is only 5-8 
"local" processes... How to say to qmgr, that it must put as many letters from 
incoming queue to "local" process, as possible? How to increase parallel 
delivery? I did this:

default_destination_concurrency_limit   = 200
initial_destination_concurrency         = 200
local_destination_concurrency_limit     = 200

but that didn't help :(

Thank you very much and sorry for my bad English.

Reply via email to