Olá Pessoal, Obrigado pelos retornos (Julio Cesar e Hamilton Vera), eu estava "estudando" este assunto de performance Interspire VS Postfix. Gostaria de compartilhar algumas observações.
Bem, eu encontrei o material Postfix Performance Tuning em http://www.postfix.org/TUNING_README.html e o nome já diz tudo. Por conta deste material e mais alguma iniciativa própria tomei as seguintes providencias: --Cada parâmetro destes está explicado no material citado. Main.cf 1 - smtpd_error_sleep_time = 0 2 - smtpd_client_connection_count_limit = 0 3 - smtp_connect_timeout = 0 4 - smtp_helo_timeout = 1s 5 - default_process_limit = 200 6 - initial_destination_concurrency = 100 7 - default_destination_rate_delay = 0 8 - smtp_destination_concurrency_limit = 100 9 - transport_destination_concurrency_limit = 100 10 -default_destination_concurrency_limit = 100 11 -local_destination_concurrency_limit = 100 Master.cf 12 - smtp inet n - - - 20 smtpd 13 - flush unix n - n 300 0 flush 14 - smtp unix - - n - 500 smtp Outras medidas 15 - Coloquei o maillog para registrar somente do nível de warning para cima. O syslog estava com mail.* e isto era interessante enquanto efetivávamos a instalação e enfrentávamos erros. Desta forma já ganharíamos um tempo no envio, que era o de registrar tuuudoo no log; 16 - Sugeri a retirada do DKIM, pois a cada email enviado ele se preocupa em registrar a chave de domínio, mas fui voto vencido. O DKIM deve permanecer. Bem, o pessoal do Postifix é claro nas documentações, ao abordar o assunto como de: tentativa e erro; dependendo de cada configuração. Com a história do DKIM eu diria que é também uma questão de trade-off. A máquina: 1 - 2 x 2.0 GHz Cores; 2 - Public Bandwidth = 3000 GB Bandwidth; 3 - Uplink Port Speeds = 100 Mbps Public & Private Networks; 4 - Memory = 6144 MB ou 6 GB Discos Disk 0 25 GB System (apenas sistema) Disk 1 2 GB Swap Disk 2 100 GB SAN System (caixas de correio) Como a máquina está em clouding não há problema em mais disco, mas isso também não é o problema, assim como a RAM, IO e Banda. Pude observar via TOP que: durante o envio de 5000 emails (que levaram 2 horas, depois do ajuste, para serem enviados) que: CPU ficou com um consumo baixíssimo, havia momentos em que a CPU batia 2% de uso; Custou para passar de 2GB de uso de RAM; O pessoal de infra me passou que nada especial de banda foi usado durante o momento do teste, ficando com folgas grandes de cerca de 70%. O número de conexões com o MySQl ficou estável, sendo que havia momentos em que 40 conexões eram abertas, mas logo este número caia indicando que o Interspire fechava as conexões de forma apropriada, ao final todas foram fechadas sem problemas. Bom, mesmo que qualquer destes itens fosse o vilão, bastava fazer upgrade que requer apenas um reboot. DETALHE: Esta máquina está única e exclusivamente com os serviços Postfix e Dovecot (Envio e recepção)SMTP, POP, IMAP e HTTP - administração do Postfix e Insterspire. Mais nada. Bem, a meta é enviar 100.000 e-mails dia. Da forma que está envia 50.000. Considerando esta configuração, condições e exclusividade acima informados eu acho pouco os 100.000, quem dirá os 50.000. O cron está habilitado para rodar a cada 1 minuto, chamando o script .php de envio do Insterspire e dá para "ver", ele levando cerca de 1,5 segundo para enviar um único e-mail. Para um e-mail apenas este tempo é imperceptível mas para 50, 100.000 há diferença. Os main e máster, seguem sem os comentários, conforme o Hamilton pediu. Com relação ao log, nenhum erro é apontado - e não há erros já que os envios e recepções são realizados. Meu chute é que estão mantendo muitas "policies" e o DKIM e isso consome. Mas eu sou novato e queria ouvir a opinião dos colegas, pois posso falar grandes bobagens. Há alguém aí trabalhando com Insterspire com melhor performance? Gostaria da opinião dos colegas e mais, quem sabe não chegamos em um denominador comum sobre esta questão de performance... Main.cf soft_bounce = yes queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = all mydestination = $myhostname, localhost, localhost.localdomain, localhost.$myhostname unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.5.9/samples readme_directory = /usr/share/doc/postfix-2.5.9/README_FILES inet_protocols = ipv4 virtual_alias_domains = myhostname = nomedamaquina.com.br myorigin = nomedamaquina.com.br mydomain = nomedodominio.com.br biff = no mynetworks = 127.0.0.0/8 mynetworks_style = subnet smtpd_data_restrictions = reject_unauth_pipelining smtpd_reject_unlisted_recipient = yes smtpd_sender_restrictions = permit_mynetworks, reject_sender_login_mismatch, permit_sasl_authenticated delay_warning_time = 0h policy_time_limit = 3600 maximal_queue_lifetime = 1d bounce_queue_lifetime = 1d recipient_delimiter = + proxy_read_maps = $canonical_maps $lmtp_generic_maps $local_recipient_maps $mydestination $mynetworks $recipient_bcc_maps $recipient_canonical_maps $relay_domains $relay_recipient_maps $relocated_maps $sender_bcc_maps $sender_canonical_maps $smtp_generic_maps $smtpd_sender_login_maps $transport_maps $virtual_alias_domains $virtual_alias_maps $virtual_mailbox_domains $virtual_mailbox_maps smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated, check_helo_access pcre:/etc/postfix/helo_access.pcre queue_run_delay = 300s minimal_backoff_time = 300s maximal_backoff_time = 4000s enable_original_recipient = no disable_vrfy_command = yes home_mailbox = Maildir/ allow_min_user = no message_size_limit = 15728640 virtual_minimum_uid = 503 virtual_uid_maps = static:503 virtual_gid_maps = static:509 virtual_mailbox_base = /var/vmail transport_maps = proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf, proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf virtual_alias_maps = proxy:mysql:/etc/postfix/mysql/virtual_alias_maps.cf, proxy:mysql:/etc/postfix/mysql/domain_alias_maps.cf, proxy:mysql:/etc/postfix/mysql/catchall_maps.cf, proxy:mysql:/etc/postfix/mysql/domain_alias_catchall_maps.cf sender_bcc_maps = proxy:mysql:/etc/postfix/mysql/sender_bcc_maps_domain.cf, proxy:mysql:/etc/postfix/mysql/sender_bcc_maps_user.cf recipient_bcc_maps = proxy:mysql:/etc/postfix/mysql/recipient_bcc_maps_domain.cf, proxy:mysql:/etc/postfix/mysql/recipient_bcc_maps_user.cf relay_domains = $mydestination, proxy:mysql:/etc/postfix/mysql/relay_domains.cf smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql/sender_login_maps.cf smtpd_reject_unlisted_sender = yes smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_authenticated_header = no smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_policy_service unix:private/policy, check_policy_service inet:127.0.0.1:7777, check_policy_service inet:127.0.0.1:10031 smtpd_tls_security_level = may smtpd_enforce_tls = no smtpd_tls_loglevel = 0 smtpd_tls_key_file = /etc/pki/tls/private/iRedMail.key smtpd_tls_cert_file = /etc/pki/tls/certs/iRedMail_CA.pem smtpd_tls_CAfile = /etc/pki/tls/certs/iRedMail_CA.pem tls_random_source = dev:/dev/urandom tls_daemon_random_source = dev:/dev/urandom # # Uncomment the following line to enable policyd sender throttle. # #smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10032 mailbox_command = /usr/libexec/dovecot/deliver virtual_transport = dovecot dovecot_destination_recipient_limit = 10 smtpd_sasl_type = dovecot smtpd_sasl_path = ./dovecot-auth content_filter = smtp-amavis:[127.0.0.1]:10024 #================================= #DEFINIDO POR RAZÕES DE PERFORMANCE #================================= smtpd_error_sleep_time = 0 smtpd_client_connection_count_limit = 0 smtp_connect_timeout = 0 smtp_helo_timeout = 1s default_process_limit = 200 initial_destination_concurrency = 100 default_destination_rate_delay = 0 smtp_destination_concurrency_limit = 100 transport_destination_concurrency_limit = 100 default_destination_concurrency_limit = 100 local_destination_concurrency_limit = 100 Master.cf # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - - - 20 smtpd cleanup unix n - n - 0 cleanup qmgr fifo n - n 300 1 qmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 300 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - n - 500 smtp relay unix - - n - - smtp -o smtp_fallback_relay= showq unix n - n - - showq error unix - - n - - error retry unix - - n - - error discard unix - - n - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache policy unix - n n - - spawn user=nobody argv=/usr/bin/perl /usr/local/lib/postfix-policyd-spf-perl pickup fifo n - n 60 1 pickup -o content_filter= submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # Use dovecot deliver program as LDA. dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${domain} procmail unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/bin/procmail -r -t SENDER=${sender} RECIPIENT=${recipient} DOMAIN=${nexthop} -m USER=${user} EXTENSION=${extension} /etc/procmailrc smtp-amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,n o_address_mappings []'s Ernani Medeiros -----Mensagem original----- De: Hamilton Vera [mailto:hamilton.lis...@gmail.com] Enviada em: sábado, 9 de abril de 2011 19:51 Para: Grupo de Usuarios Postfix do Brasil Assunto: Re: [Postfix-BR] Tunning Postfix - Interspire Você tem que postar alguns logs para termos idéia do problema e verificar se sua banda aguenta. []'s Hamilton Vera _______________________________________________ Postfix-BR mailing list Postfix-BR@listas.softwarelivre.org http://listas.softwarelivre.org/mailman/listinfo/postfix-br