Все виды временной почты.Одна платформа.

07/12/2024

250000 писем в день: вызовы и решения

250000 писем в день: вызовы и решения

Наш обновлённый два года назад Müllmail работает на самом деле отлично - за одним исключением: проблема с нагрузкой на систему.

С самого начала Müllmail.com работал на виртуальном сервере (VPS), и мы почти каждый год наращивали его ресурсы. Последняя конфигурация включала 16 ядер, 64 ГБ ОЗУ и несколько терабайт диска. Казалось бы, этого должно хватить. Увы - нет. Постоянная загрузка CPU на уровне 80-90 %, с пиками до 100 % стала обыденностью.

В чём причина? Виновато было взаимодействие между базой данных и почтовым сервером. Причём 90 % нагрузки шло именно от базы данных. В результате почтовик временами просто переставал справляться: письма доходили с задержкой в несколько минут или даже до получаса. Мягко говоря, неудовлетворительно. Нужно было срочно что-то менять.

Решение: больше мощности и грамотная база данных

Первым шагом стало обновление железа. Мы перешли на выделенный сервер с 32 ядрами, 128 ГБ ОЗУ и NVMe-дисками. Да, это дороже, чем VPS, но надёжность важнее. Результат? Загруженность процессора упала до 30 % - огромный прогресс.

Переход на новый сервер мы использовали как шанс пересмотреть и структуру базы. И обнаружили: не хватало одного критически важного индекса.

Что такое индекс?

Индекс в базе данных - это как оглавление в книге. Он позволяет быстро находить нужные данные без необходимости перечитывать всё подряд. Без индекса база вынуждена просматривать каждую строку таблицы при любом запросе - медленно и неэффективно.

С хорошо настроенными индексами происходит так называемый "index scan" - база мгновенно переходит к нужным строкам, экономя ресурсы и время. Особенно это важно при работе с миллионами записей.

Итог: быстрая база - довольный процессор

После добавления недостающего индекса нагрузка на процессор снизилась ещё сильнее - теперь в среднем всего около 10 %. Можно сказать, наш CPU ушёл в летний отпуск. Скрыть такую ошибку было бы проще, но это не в нашем стиле.

В итоге мы теперь полностью готовы к нагрузкам, и сбои из-за нехватки ресурсов остались в прошлом.

Спасибо, что используешь Müllmail.com - будь то для промокодов, регистрации в рассылках или тестирования своей почтовой системы. Кстати, мы добавили новые домены - наслаждайся!
Если возникнут вопросы или проблемы, пиши нам в любое время на kontakt@team.muellmail.com!