Страница 1 из 1

Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-05 14:52:54
bagas
Добрый день.
Подскажи как лучше оптимизировать postfix для рассылки примерно 100k писем в сутки?
Это не спам, это данные по авторизации.
система debian 7
Сеть две гигабитные карты intel.
Памяти 64Гиг.
Процессор Е5 xeon - 12 ядер.
Конфиг postfix.

Код: Выделить всё

myhostname = mx.chat.net
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomain
relayhost =
mynetworks = 192.168.1.0/24, 127.0.0.0/8
home_mailbox = .maildir/
anvil_rate_time_unit = 60s
smtpd_client_message_rate_limit = 0
smtpd_client_recipient_rate_limit = 0
smtpd_client_connection_rate_limit = 100
minimal_backoff_time=30m
queue_run_delay=
maximal_backoff_time=2m
maximal_queue_lifetime=0
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-05 15:15:01
vadim64
а сейчас он не справляется? какие ресурсы проседают?

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-05 15:28:23
bagas
Еще не запускали в шатном режиме.
Пока настраиваю.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-06 10:48:31
moury
Сам постфикс оптимизации не требует. Считается, что он разработан как раз под крупные почтовые системы.

Торможение может быть при работе с БД, поэтому надо оптимизировать саму СУБД, а в постфиксе - взаимодействие с ней, и обязательно соединения с БД проксировать. Тут я мало что помню.

Если используете acl на основе БД, при больших трафике и спаме будет не хватать сокетов для соединения с БД. так что советую: увеличить количество сокетов в настройках СУБД; статические acl на основе БД не делать (только cdb или hash).
В документации утверждается, что cdb быстрее hash.

Диск узким звеном не будет, однако обязательно контролировать состояние диска (массива) - если соединение с БД - через файловые сокеты, сбойный участок может очень эффектно затормозить работу почтовой системы.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-06 18:35:20
bagas
moury писал(а):Сам постфикс оптимизации не требует. Считается, что он разработан как раз под крупные почтовые системы.

Торможение может быть при работе с БД, поэтому надо оптимизировать саму СУБД, а в постфиксе - взаимодействие с ней, и обязательно соединения с БД проксировать. Тут я мало что помню.

Если используете acl на основе БД, при больших трафике и спаме будет не хватать сокетов для соединения с БД. так что советую: увеличить количество сокетов в настройках СУБД; статические acl на основе БД не делать (только cdb или hash).
В документации утверждается, что cdb быстрее hash.

Диск узким звеном не будет, однако обязательно контролировать состояние диска (массива) - если соединение с БД - через файловые сокеты, сбойный участок может очень эффектно затормозить работу почтовой системы.
Спасибо за совет.
Сервер настроен как релей.
сам постфикс в бд ничего не хранит.
Диск ssd да и оперативки вроде не мало.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-06 20:13:41
bagas
Хотелось узнать как больше потоков сделать обработки очереди писем.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-08 8:24:31
FiL
bagas писал(а):Добрый день.
Подскажи как лучше оптимизировать postfix для рассылки примерно 100k писем в сутки?
100K в сутки - это 70 писем в минуту. Копейки.
Вот только у вас smtpd_client_connection_rate_limit стоит 100 на 60 секунд. И это на релее. Что-то сильно близко к среднему значению, которое надо достичь (70). То есть любые всплески будут упираться в этот лимит и создавать затыки. Не уверен, что это хорошая идея.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-08 9:32:45
bagas
А какой параметр рекомендуешь?
smtpd_client_connection_rate_limit - как я понял это количество соединение с одного ип адреса.
Релей принимает толкьо от одной машины письмы.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-08 19:28:08
FiL
если релей принимает письма только от одной машины, то зачем вообще rate ограничивать?

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-08 19:33:33
bagas
Логично!

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-09 2:34:34
moury
bagas, Вы писали, что почтовик будет рассылать данные по авторизации. Какой? Контрольные письма после регистрации на сайтах?

Если да - Вы попали. Боты начнут регистрацию аккаунтов с несуществующими адресами, и Вы утонете отлупах и их обработке. Особенно если администратор сайта использует бесплатный адрес e-mail.
Сама почтовая система-ретранслятор должна быть настроена примерно по такой схеме: http://moury.ru/spora/admin/mailadmin_req.html , плюс крайне желательно право давать по башке обслуживающему сайт персоналу.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-09 8:31:05
FiL
moury,
не надо так нервничать. Контрольные письма можно рассылать с адреса noreply@microsoft.com и пускай в отлупах тонет кто-то другой :)

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-09 12:00:28
moury
FiL, во-первых, "отлупы" придется рассылать ретранслятору (он и потонет); во-вторых, такие действия чреваты. Подделка технической информации - то,чем занимаются спамеры.

Если на мою систему пойдут письма от форума с явно чужими обратными адресами, внесу ретранслятор в локальный "черный список". Серьезные же конторы внесут ретранслятор в публичные DNSBL - и не отмоешься.

А для админа ретранслятора такая подделка - основание административно дать по башке админу сайта.
И начальство присоединится: подделка адреса - угроза бизнесу на сайте.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-09 18:01:16
bagas
moury писал(а):bagas, Вы писали, что почтовик будет рассылать данные по авторизации. Какой? Контрольные письма после регистрации на сайтах?
Да.
Тогда как быть, как лучьше оптимизировать.
Вообще письма посылаюсться на сервер из локлаьной сети, сервер открыт для локальной сети.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-09 18:45:34
FiL
moury писал(а):FiL, во-первых, "отлупы" придется рассылать ретранслятору (он и потонет); во-вторых, такие действия чреваты. Подделка технической информации - то,чем занимаются спамеры.
А чего это вы такой серьезный? Я вроде даже смайлик поставил, чтоб данное предложение воспринималось не более, чем шутка.

А если серьезнее, то я не очень понимаю чем таким страшным грозят отлупы. Ну получает сервер 550 User unknown, ну генерит письмо отправителю. Которое или сразу в /dev/null складывается (у меня так) или кладется в локальный ящик. Никакой особой дополнительной нагрузки это не дает.
Несколько хуже вариант, когда удаленный сервер почту сначала принимает, а уж потом генерит отлуп. Тогда надо сначала доставить почту, а потом отлуп надо принять как новое письмо. То есть по сути нагрузка удваивается. Так это легко решается разносом исходящего и принимающего релеев на разные сервера. Вот только смысла это имеет на совсем других нагрузках. У меня во время спам-аттак сервер (Pentium-4, 2Gb ram, сеть сотка) без напряга перемалывал по 250 писем в минуту (360К в сутки) и даже не замечал нагрузки. А уж описываемый сервак перемелет пару миллионов писем лениво пошевеливая одним ядром из 12.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-10 19:12:30
moury
FiL писал(а): А чего это вы такой серьезный? Я вроде даже смайлик поставил, чтоб данное предложение воспринималось не более, чем шутка.
Да просто я на эту тему никогда не шучу. Вы наступили на любимую мозоль :smile:

Кроме того, форум посещают не только здравомыслящие люди. Некоторые примут Вашу шутку как руководство к действию.
FiL писал(а): А если серьезнее, то я не очень понимаю чем таким страшным грозят отлупы. Ну получает сервер 550 User unknown, ну генерит письмо отправителю. Которое или сразу в /dev/null складывается (у меня так) или кладется в локальный ящик. Никакой особой дополнительной нагрузки это не дает.
Проблема - распухание очереди. На письмах маленького размера оно к торможению сервера не приведет, зато сильно осложнит анализ работы почтовика - засоряются вывод mailq и логи.

Если доставлять почту в /dev/null, как у Вас, распухания очереди не будет, но можно пропустить важное письмо (например. уведомление от скрипта CMS о сбое) или не заметить, что характер окучивания ботами сайта изменился.

То есть, почту, адресованную отправителю (www-data@www.domain.ru ) надо доставлять веб-мастеру. Но я столько раз видел. как веб-мастера вели себя не лучше обычных юзеров! Они не читали свою почту, потому что просто не хотели видеть эти уведомления! Ящик веб-мастера переполнялся. становилось весело.

Проблема - невелика (для Вас уже - не проблема), только о ней надо подумать заранее. Вот и все.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-10 19:14:38
moury
bagas писал(а):
moury писал(а):bagas, Вы писали, что почтовик будет рассылать данные по авторизации. Какой? Контрольные письма после регистрации на сайтах?
Да.
Тогда как быть, как лучьше оптимизировать.
Вообще письма посылаюсться на сервер из локлаьной сети, сервер открыт для локальной сети.
НЯМС, в таком случае оптимизация вообще не требуется.

Re: Оптимизация postfix для рассылки 100к писем в сутки

Добавлено: 2014-02-10 20:32:09
FiL
moury писал(а): Если доставлять почту в /dev/null, как у Вас, распухания очереди не будет, но можно пропустить важное письмо (например. уведомление от скрипта CMS о сбое) или не заметить, что характер окучивания ботами сайта изменился.
Рассылка информационных сообщений от форума совершенно не должна идти с того-же адреса, куда пишут важные письма, например, уведомления от скриптов.
Дерьмо рассылается с noreply@domain и этот ящик привязан к /dev/null, а письма админу идут на webmaster@domain или admin@domain или еще какие там прописаны адреса в настройках - те должны доставляться живым людям. С надеждой на то, что они их читать будут.
Проблема - невелика (для Вас уже - не проблема), только о ней надо подумать заранее. Вот и все.
Собственно, об том и речь, что проблемы с рассылкой 100К писем в принципе нет. Ничего особо твикать не нужно. На таких объемах все достаточно хорошо работает 'искаропки'.