Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Valentin Nechayev                    2:5020/400     23 Jun 2002  11:54:52
 To : Vlad Akulinsky
 Subject : Re: sendmail
 -------------------------------------------------------------------------------- 
 
 >>> Vlad Akulinsky wrote:
 
  >>>>> Что покрутить в сабже, чтобы он все принятые письма не релеил
  >>>>> сразу, а скажем брал штук 10, а остальные складывал в очередь и
  >>>>> отправлял по мере освобождения. А то я ему кидаю штук 100, он
  >>>>> пытается отправить одновременно все и забивает канал.
  DY>>>>   Посмотри на параметр confMAX_DAEMON_CHILDREN
  VA>>> Как я понял, это влияет на количество входящих соединений.
  VN>> Hет. В более ранних чем 8.12 это в сумме.
 VA> Странно, но когда у меня было DeliveryMode=b он создавал исходящих
 VA> соединений гораздо больше чем maxdaemonchildren.
 
 Правильно.
 При background они форкаются бесконтрольно. Контроль делается только
 через измерение LA хоста. Там контроль на основании размера письма,
 приоритета, количества получателей и параметра QueueLA конфига.
 Когда мне это надо было отрезать, пришлось вешать патч в код, чтобы
 использовались ограничения для таких фоновых доставщиков - через пул
 файловых локов.
 
 Параметр же MaxDaemonChildren (в mc'шке - confMAX_DAEMON_CHILDREN)
 действует в версиях до 8.12 на всех потомков демона в сумме -
 smtp получателей и периодических разгребальщиков очереди.
 В 8.12 они этот свой застарелый маразм начали исправлять (хотя нормально
 сделают только года через 3, не раньше) - разделили ограничения для этих
 двух групп. Hо на те процессы, которые возникают для фоновой доставки
 при DeliveryMode=background - 1) из smtp получателей, 2) из разгребальщиков
 очереди при редко используемом ForkEachJob=true, 3) из командной строки -
 на эти процессы эти ограничения не действуют до сих пор.
 
 DeliveryMode=queue тем и хорошо для целей ограничить, что оно дает
 возможность простыми средствами действительно ограничивать плотность работы,
 а не иметь иллюзорный механизм с реакцией в несколько минут.
 
  VA>>> Мне же нужно
  VA>>> уменьшить количество исходящих.
 
  VN>> Делаешь два демона, запуская их так:
 
  VN>> sendmail -bd -odq -OPidFile=/var/run/sendmail.daemon.pid
  VN>> sendmail -q5m -OMaxDaemonChildren=10 -oYfalse \
  VN>>     -OPidFile=/var/run/sendmail.qrunner.pid
 
  VN>> -odq первому дает не релеить сразу. Ограничение второму дает
  VN>> ограничение количества исходящих одновременно. Это включая локальные
  VN>> доставки.
 
 VA> В если просто sendmail -bd -odq -q5m ?
 
 Тогда (если это не 8.12, у него регулировка раздельная) получишь плохую
 управляемость. Hапример, если у тебя всего 10 в сумме, то при 5 активных
 smtp приемниках ты получишь только 5 доставляльщиков, а если у тебя
 уже будут все 10 доставляльщиков - то закроется прием по smtp.
 Hе думаю, что это понравится твоим юзерам.
 
 Кстати, вторую команду лучше переделать так:
 
 sendmail -q10s -OMinQueueAge=5m -OMaxDaemonChildren=10 -oYfalse \
   -OPidFile=/var/run/sendmail.qrunner.pid
 
 - это даст оперативную реакцию на свежезапощенные письма, они будут
 подниматься раз в 10 секунд (если не все разгребальщики заняты),
 а перед повторным запуском будет не менее 5 минут.
 
 А еще полезно запустить к этому
 sendmail -q10s -PidFile=/var/run/sendmail.qrunner.local.pid -qR@<твой_домен>
 
 оно будет быстро доставлять локальную почту не дожидаясь завершения
 долготянущихся доставок в мир.
 
 А если хочешь избавиться от всей этой дурной мутотени и получить более
 нормальную конфигурацию - вариантов 2:
 
 1. Поставить postfix. В нем все это сделано красиво и аккуратно.
 
 2. Поставить sendmail 8.12.2 или более поздний, сконфигурить две очереди -
 на локальную почту и на удаленную, ограничить конфигом количество
 доставщиков во второй очереди тем же 10, написать рулесет queuegroup
 который разделяет письма между очередями. Примерно так:
 
 Qlocal, P=/var/spool/mqueue/local, r=20, I=10s
 Qremote, P=/var/spool/mqueue/remote, r=10, I=1m
 Squeuegroup
 R$*    $: $>3
 R$*<@$=w.> $@ $#local
 R$*    $@ $#remote
 
 Все это, естественно, при тех же DeliveryMode=queue и MinQueueAge=5m.
 /netch
 --- ifmail v.2.15dev5
  * Origin: Dark side of coredump (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: sendmail   Valentin Nechayev   23 Jun 2002 11:54:52 
Архивное /ru.linux/736899cd9f9e.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional