Перейти к содержимому

Производительность почтовых серверов

О понятии производительности почтовой очереди на арендуемом smtp-сервере.

Основываясь на опыте поддержки почтовых серверов для рассылок, мы говорим о возможности рассылок писем размером около 500 Кбайт (помним, что вложения, в том числе и изображения раздувают размер сообщения примерно на 30%) по базе усреднённого качества.
Чтобы понять, что влияет на скорость доставки сообщений, то есть, в конечном счёте, на количество писем, которые сервер может доставить за некий интервал времени — в нашем случае — сутки, коротко расскажем, в чем возникает проблема при попытке доставить слишком большое число писем.

Глобально можно представить весь процесс как следующие его этапы: формирование письма на Вашем клиенте (процесс не сложный, зависит от мощности Вашего компьютера), передачу сообщений для доставки почтовому серверу (на 99% зависит от скорости Вашего канала в интернет), приём сервером сообщения, перемещение его в очередь для отправки, передача на конвейер отправки, поиск сервера (запрос к dns), который будет принимать сообщения, попытка отправки сообщения (процесс довольно длительный, по отношению к «закидыванию» сообщения на сервер отправки, поскольку в 95% случаев, принимающий сервер будет проверять посылающий сервер по RBL-базам «источников спама», потом проверять текст письма на спам и вирусы и лишь после этого сообщит либо «письмо доставлено», либо «не буду принимать спам», либо «нет такого пользователя»).

Дополнительной нагрузкой на передающий сервер являются так называемые «серые листы» - довольно эффективная технология борьбы со спамом, распространяемым «бот сетями»: при поступлении нового письма (обычно учитывают от какого сервера письмо, с какого адреса и для какого адреса). Если письмо новое, то после всех стадий приёма сервер получатель сообщает ошибку, которую можно примерно перевести как «у меня тут что-то разладилось» - попробуйте позже. Технология довольно эффективна, так как спамботы плохо умеют делать повторы (для них это просто ошибка, то есть письмо не доставлено - надо пробовать с другого сервера), но заметно усложняет жизнь отсылающим серверам (у них образуется очередь из писем которые надо повторно попробовать доставить).

Вторым фактором увеличения очереди является то, что большинство серверов не хотят принимать более скольких-то писем за некий интервал (это делают в том числе и популярные почтовые службы, такие как mail.ru, yandex.ru, gmail.ru, rambler.ru). Во всех рассылках есть тематически важные сервера, на которые идёт много почты, такой сервер тоже периодически будет сообщать серверу отправителю нечто вроде «слишком много соединений от этого сервера, приходите позже», после чего будет срабатывать «серый список», после чего письмо будет доставлено.

Ну и, кроме этого, есть заметное число почтовых серверов, которые админ-неумеха поставил на своей машине, выключаемой на ночь, просто работающей 50% времени. Такое письмо тоже надо доставить — это опять увеличение очереди.

Рассмотрим, что такое очередь писем: упрощено это множество файлов, каждый их которых письмо, где дополнительно указано, когда надо делать следующую попытку доставки, на какой адрес. При этом у современных, в т.ч. почтовых, серверов наиболее узким местом является именно дисковая подсистема. При размере очереди более некоего числа (как в количестве файлов, так и в их размере) сервер не успевает обработать все письма, то есть принимать новые письма для доставки ему уже просто некогда.

То есть, можно сделать следующие выводы: так как очень заметная часть времени сервера уходит на передачи почты, подготовительные этапы, то увеличение количества писем в сутки при уменьшении их размера есть величина совсем не линейная: ресурсы, затрачиваемые на передачу десяти писем размером 100Кб значительно меньше (в разы), чем на передачу 100 писем размером 10Кб. Кроме того возможности сервера сильно зависят от качества Вашей базы адресов, а именно количества неживых адресов в базе (ведь на каждое недоставленное письмо надо сформировать письмо с уведомлением об этом и известить отправителя), ну и наличия проблемных серверов.

Таблица ниже показывает нечто среднее: то есть в базе около 5% адресов на которые невозможно доставить почту (совсем невозможно, потому что при сообщении "ящик переполнен" сервер обычно осуществляет несколько попыток доставки — это зависит от настроек принимающего сервера); около 40% адресов находятся на почтовых серверах популярных почтовых служб (не стоит забывать, что очень часто корпоративную почту обслуживают сервера Yandex или Google); 30% адресов работают с серыми списками.
Примерное время передачи писем от Вас на сервер 11-12 часов, если Вы планируете рассылку максимального суточного объема, определенного конфигурацией Вашего почтового сервера.

Конфигурация: SMTP1

10Кб письмо - до 20 000 писем в сутки
100Кб письмо - до 9 000 писем в сутки
500Кб письмо - до 4 000 писем в сутки

Конфигурация: SMTP5

10Кб письмо - до 45 000 писем в сутки
100Кб письмо - до 22 000 писем в сутки
500Кб письмо - до 10 000 писем в сутки

Конфигурация: SMTP20

10Кб письмо - до 170 000 писем в сутки
100Кб письмо - до 75 000 писем в сутки
500Кб письмо - до 35 000 писем в сутки

Если Вам надо, как можно быстрее «отдавать» письма серверу для доставки, пожертвовав общей производительностью, то, стоит сообщить это при заказе, тогда можно будет передавать серверу все письма для суточной доставки за 2-3 часа (если у Вас хватит скорости интернет канала), но общая производительность сервера упадет в два раза. Правильнее будет решить вопрос экономии личного времени и ресурсов рабочего компьютера на проведение email-рассылки путем размещения программы рассылки на внешнем удаленном windows-сервере.

 

Добавить комментарий