Salutare,

Rulez un server postfix (2.2.10) pe un domeniu intern exclusiv pentru
alarme. Scopul lui e să preia alarme de la diverse sisteme de management și
să le scrie în maildir-uri locale (după ce face expand la alias-uri).
Problema e că nu face față deloc ok la vârfuri de alarme (spike-uri de
3-6000 de mailuri) și aș vrea să îi îmbunătățesc performanța (sau măcar să
înțeleg de ce e limitat). Momentan reușește să facă local delivery la ~1000
mailuri/oră: http://imgur.com/1GH3y

Sistemul pe care rulează e un Intel(R) Xeon(TM) CPU 3.00GHz cu HT, are la
dispoziție 2G de RAM + 2 swap (nefolosiți) și scrie pe un volum RAID 1 de
133G (format parcă din 2 discuri). Load average-ul pe sistem e de regulă
sub 1, dar în momente de flood de alarme crește între 2 și 3.

Performanța discului nu e cine știe ce, dar nu e nici foarte rea (cele 6000
de mailuri sunt de regulă sub 1k):
[root@raptor ~]# hdparm -tT /dev/cciss/c0d0p1

/dev/cciss/c0d0p1:
 Timing cached reads:   3848 MB in  2.00 seconds = 1923.33 MB/sec
HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl
for device
 Timing buffered disk reads:  272 MB in  3.01 seconds =  90.50 MB/sec
HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl
for device

Filesystem-ul e ext3, montat cu noatime.

Configurația postfix este:

[root@raptor ~]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
default_destination_concurrency_limit = 40
default_process_limit = 150
helpful_warnings = yes
home_mailbox = Maildir/
html_directory = no
inet_interfaces = localhost, 1.1.1.4
initial_destination_concurrency = 20
local_destination_concurrency_limit = 100
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
maximal_queue_lifetime = 5m
message_size_limit = 41943040
mydestination = $myhostname,localhost.$mydomain,localhost
mydomain = lan.net
myhostname = raptor.lan.net
mynetworks = 10.0.250.0/24, 127.0.0.0/8
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.2.10/README_FILES
sample_directory = /usr/share/doc/postfix-2.2.10/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_connect_timeout = 5
smtp_helo_timeout = 10
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_connection_count_limit = 100
smtpd_client_restrictions = permit_mynetworks
smtpd_error_sleep_time = 0
unknown_local_recipient_reject_code = 550

Am citit din documentația postfix
http://www.postfix.org/QSHAPE_README.htmlși o parte din
http://www.postfix.org/TUNING_README.html
O parte din parametrii au fost deja tunați conform recomandărilor, dar nu
am avut o mare creștere de performanță.

În concluzie - mă puteți îndruma spre ceva documentație/articole care să
îmi zică cum să găsesc unde am bottleneck-ul la local delivery? Dacă găsesc
bottleneck-ul, am ceva șanse să îmbunătățesc performanța, sau sunt deja
limitat de hardware? Mi se pare totuși o performanță mică să facă delivery
la 1 mail/secundă cum face acum (recunosc, alias-urile au cam 20-30 de
mailbox-uri în spate...). Care e experiența voastră în domeniu?

Thanks,
Adrian
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui