2012/1/11 Adrian Popa <[email protected]>:
> 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

cred ca de aici ti se trage, e foarte mic transferul pe disk.

>
> 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?

vezi daca te ajuta sa pui logurile intr-un ramdisk sa vezi daca de la
syslogd ti se trage.
cum ziceau si alti oameni, vezi la disk, ca e ceva in neregula.

daca faci delivery local, vezi daca te ajuta sa treci la Maildir/.
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui