Дело происходит так.
Выделенный сервер. PHP скрипт делает небольшую почтовую рассылку, 1000-2000 писем. При этом почему-то забивается системная очередь у pickup (вспомогательный сервис у Postfix):
netstat -Lan
...
unix 151/0/100 public/pickup
...
и система ругается:
kernel: sonewconn: pcb 0xfffff8004cbbf870: Listen queue overflow: 151 already in queue awaiting acceptance
last message repeated 972 times
Сами письма вроде бы уходят, в логах нет ошибок, а есть примерно следующее:
Feb 15 17:01:02 theserver postfix/pickup[29787]: 7627929DE4A5: uid=1001 from=<theuser>
Feb 15 17:01:02 theserver postfix/cleanup[33164]: 7627929DE4A5: message-id=<20170215140102.7627929DE4A5@theserver.ru>
Feb 15 18:01:02 theserver opendkim[972]: 7627929DE4A5: DKIM-Signature field added (s=thedomen, d=thedomen.ru)
Feb 15 17:01:02 theserver postfix/qmgr[81797]: 7627929DE4A5: from=<theuser@theserver.ru>, size=1811, nrcpt=1 (queue active)
Feb 15 17:01:03 theserver postfix/smtp[33168]: 7627929DE4A5: to=<someemail@example.com>, relay=mx.yandex.ru[87.250.250.89]:25, conn_use=11, delay=58, delays=57/0/0/0.61, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued on mxfront3j.mail.yandex.net as 1487167263-xPE7azV17j-12jSJTiT)
Feb 15 17:01:03 theserver postfix/qmgr[81797]: 7627929DE4A5: removed
..но кто же его знает, что там происходит если очередь на входе уже переполнена. Может система просто отбрасывает письма и они не попадают в очередь?
Разумное увеличение размера очереди результата не приносит.
Конфиг postfix-а ничего особенного не содержит, его отличия от чистого установочного конфига примерно такие:
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_recipient_access hash:/usr/local/etc/postfix/access
# Запрещение приёма почты с некоторых адресов
smtpd_sender_restrictions = hash:/usr/local/etc/postfix/incoming_access
smtpd_banner = $myhostname ESMTP
local_recipient_maps = hash:/usr/local/etc/postfix/recipient_map $alias_maps
# DKIM
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
Где копать?