-1

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 main.cf from the main instance. Anyone have any advice? I'm open to anything!!

Main.cf:

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:127.0.0.1:8891
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
john
  • 129
  • 7
  • 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

2 Answers2

1

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!

mailq
  • 16,882
  • 2
  • 36
  • 66
0

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.

S19N
  • 1,693
  • 1
  • 17
  • 28