From: devel anaconda (no email)
Date: Thu Nov 05 2009 - 18:19:34 EST
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:
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:
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.