Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a client who has been allocated 20 ip's specifically for mailing newsletters, alerts, etc. Typically, the amount of mail sent per day to users is around 1 million although it can peak at around 2 million, and not spread out evenly. I assured the client 20 ip's on 1 system would suffice since I knew postfix could run multiple instances. Not so sure now..

Now I'm having the problem of high loads on the mailing server - top shows 5+,5+,5+ after an hour and continues to climb. At times the system takes on the full 20 simultaneous connections. I have setup transports for the big ISP's and throttled them to try and reduce the amount of mail being sent to the deferred queue as well as increase deliverability. I was hoping it would also reduce the high load, it did not.

The server has 4 cores and 2gb of ram and an unmetered 100mbps line. The cpu seems to stay around 1%-5% and Ram is always under 1GB. Could this be a bandwidth issue or something else? One thing I had thought about is the customer sends emails through a custom mailing script which I suspect may keep existing connection open even after sending has been completed. I'm not sure how I could check something like this but it's something I've thought about.

Below is my from the main instance. Anyone have any advice? I'm open to anything!!

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
bounce_queue_lifetime = 1d
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
header_checks = regexp:/etc/postfix/header_checks
html_directory = no
inet_interfaces = xx.xx.xx.xx
inet_protocols = ipv4
initial_destination_concurrency = 5
local_header_rewrite_clients = static:all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
maximal_backoff_time = 4h
maximal_queue_lifetime = 1d
milter_default_action = accept
minimal_backoff_time = 10m
multi_instance_directories = /etc/postfix-4 /etc/postfix-5 /etc/postfix-6 /etc/postfix-7 /etc/postfix-8 /etc/postfix-9 /etc/postfix-10 /etc/postfix-11 /etc/postfix-12 /etc/postfix-13 /etc/postfix-14 /etc/postfix-15 /etc/postfix-16 /etc/postfix-17 /etc/postfix-18 /etc/postfix-19 /etc/postfix-20 /etc/postfix-21 /etc/postfix-22 /etc/postfix-23
multi_instance_enable = yes
multi_instance_wrapper = ${command_directory}/postmulti -p --
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = domain.tld
myhostname = domain.tld
mynetworks = yy.yy.yy.yy
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = $smtpd_milters
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.8.7/README_FILES
sample_directory = /usr/share/doc/postfix-2.8.7/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_helo_timeout = 10s
smtpd_milters = inet:
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
share|improve this question
could you take a look at iotop and post the relevant output please? – the-wabbit Dec 16 '11 at 21:29
Total DISK READ: 0.00 B/s | Total DISK WRITE: 671.87 K/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 5213 be/4 postfix 0.00 B/s 0.00 B/s 0.00 % 0.28 % qmgr -l -t fifo -u 21730 be/4 postfix 0.00 B/s 11.32 K/s 0.00 % 0.15 % cleanup -~-t unix -u ......................... – john Dec 16 '11 at 21:37

First thing would be to check what is producing the high load? Which process(es) consume(s) the most CPU time? It should be a Postfix process to blame Postfix as the culprit. If it is something like clamd then it is not Postfix!

share|improve this answer

What about keeping a local DNS cache using Unbound? Also, check that "client" hosts generating the mails and connecting to Postfix can be correctly DNS (reverse) resolved.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.