У меня следующая договоренность. Один сервер собирает электронные письма на php, а другой сервер запускает постфикс (таким образом, у меня есть задержки в сети).
Каждое электронное письмо посвящено 300 КБ и чтобы отправить электронное письмо (используя класс электронной почты Zend), требуется около 0,2 с . Однако, если я сжимаю текстовое содержимое электронной почты, размер становится 30Кб и задержка около 0,06 . Проблема в том, что постфикс не поддерживает сжатие текста, поэтому я думаю о разработке Милтер который будет распаковывать электронные письма из очереди.
Можете ли вы вспомнить какие-либо недостатки этого решения или можете предложить альтернативу?
изменить: компания, в которой я работаю, отправляет> 100 000 писем на адрес зарегистрированный пользователей ежедневно, и я пытаюсь сократить время отправки до минимума.
Я бы предпочел сжимать электронные письма ДО того, как они достигнут постфикса, например, с помощью PHP: Zlib. В конце концов, SMTP-сервер обрабатывает почтовый / SMTP-трафик, а не сжатие / распаковку.
Докажите, что именно сеть является вашим узким местом.
Сообщения размером 300 КБ по гигабитной сети Ethernet имеют теоретическое время передачи около 2,5 мс каждое; это означает, что вы можете отправлять сотни их в секунду между источником и постфиксом.
Однако postfix также должен хранить эти сообщения в очереди на диске, что намного медленнее - хранение сообщений 100 * 300 КБ на диске (~ 30 МБ), вероятно, займет до секунды или более, что в несколько раз медленнее, чем время передачи по сети. .
Собирайте точные данные первый, а затем пожаловаться, что что-то является узким местом.