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
