Postfix отдыхает. Все в одном процессе/треде, на select()
. Каждое соединение было представлено в качестве простого автомата.
Так как при сильной загрузке канала иногда пропадают DNS пакеты и это надолго тормозит коннекшн, а так же некоторые домены не работают, то рассыльщик использовал (собственное изобретение) DNS pre-resolving: По доменам из мейллистов заранее, до рассылки вычисляются IPv4 адреса их MX’ов и сохраняется в файле. Затем рассылка ведется по этому файлу, сразу коннектясь к MX, пропуская этап резолва. Точные скорости не помню, но, по-моему, рассылал в 3000 одновременных коннектов. Моими умелыми руками удалось растянуть bottleneck до CPU/Bandwidth, медленные ответы от серверов не тормозили рассылку.