@soupdawgie

Почему Exim в Docker-контейнере работает медленнее, чем на обычном сервере?

Господа, ситуация.

Пишу велосипед для имейл-маркетинга, оплачивать сторонние решения для базы в 350К+ стало слишком дорого. Работает (вернее, работал) он так: скрипт на Ruby проходится по подписчикам, рендерит HTML с подставленными для конкретного подписчика ссылками и текстом и отправляет письма через Exim. Настроенный Exim со включенным кэшем DNS отправляет 15-20 писем в секунду. Но этого недостаточно.

Наша цель -- отправлять письма в 2-3 раза быстрее. Для этого я развернул четыре Docker-контейнера с Exim внутри. Скрипт теперь делит всех подписчиков на четыре куска и асинхронно шлет сообщения каждому из контейнеров.

Но довольно скоро выяснилось, что четыре MTA одновременно отправляют письма медленнее, чем один на хосте. Даже один Exim в контейнере медленнее.

Я проверял сеть, диски, мониторил htop, iotop и nload под нагрузкой (сервер справляется, до полной загрузки далеко), перевел Docker с loopback на thinpool, положил spool в tmpfs -- все тщетно. Очевидно, где-то есть бутылочное горлышко, о котором я не знаю.

Что бы это могло быть?
  • Вопрос задан
  • 616 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы