Hi

Looking for some hints on a performance problem i have with postfix and looping 
mail through a content filter and it slowly feedback back out via the maildrop.


It would seem that pickup process is trickle feeding the maildrop back into the 
active queue. I conscious that pickup is single thread but for comparison on 
reboot of the match postfix will seemingly take the maildrop items real fast 
and smtp send them out. But if I batch send the items in via postfix input 
queue (from an external smtp server) it goes slow.


Scenario:

Stress test were I send 30-60k of messages to a single domain (not the best 
test but its suits my requirements).

Jame SMTP server -> sends to postfix (25 connections) -> postfix setup with a 
content filter that is a python script (see below) -> reinjects using send mail 
-> pickup trickles messages into active -> the relay (smtp) to another mail 
server but very slowly, i.e 1 a second or there about.

Again. If I reboot the box (restarting postfix doesn't seem to do it) the relay 
sending goes out at 20 connections and really fast.

Snippet from the python script:

# pass message to python script which calls webservice
/usr/bin/python /etc/postfix/custom_scripts/audit/mime.py 
/etc/postfix/custom_scripts/audit/messages/rawmessage_$$.msg "$@"
# || { echo Python script did not execute; exit $EX_UNAVAILABLE; }

# send message back to queue - strip the postfix instance name
/usr/sbin/sendmail -G -i -f "$1" "${@:3}" 
</etc/postfix/custom_scripts/audit/messages/rawmessage_$$.msg

I don't believe the above is an issue. Its the fact I'm sendmail it to maildrop 
and pickup is being slow.

CPU utilisation is moderate to low when pickup is being slow. IO wait is 
averaging 20% so i don't think its a deliberate bottle neck. maildrop directory 
entries are in the order of 20-30k.

default_destination_concurrency_limit = 50 - i've tried bumping this. Works on 
the fresh restart but seems to have no bearing ones the postfix has been 
running, i.e. concurrency doesn't ramp up.

in_flow_delay = 0, didn't seem to have any influence either.

My thoughts:
- on a reboot (but why not restart) pickup is detecting the maildrop items and 
then pushing them fast into the active/incoming queue.
- when running normally and after delivery via sendmail pickup is not detecting 
the items and only picking up at a rate limit - why?

Any ideas or suggestions would be appreciated.

Thanks

Raymond

Reply via email to