Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: производительность почтарей  (Прочитано 1236 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yasix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Господа, у кого есть опыт, подскажите пож. производительность ну хотя бы того же постфикса: сколько сообщений в минуту он может отправлять? Размер сообщения 20Кб.

У меня на дедике (fast vps)  пхп-скрипт на Symfony через какой-то свой компонент SwiftMailer делает ч-то около 300 сообщений в минуту.
А хочется больше. Раз в десять.

Вот хочу выяснить: это симфония тупит? Или Постфикс быстрее и не будет слать?

Пытаюсь понять, куда копать: оптимизировать скрипт, или искать к-нть многопоточный мейлер? И какая производительность, кстати, у этих масс-мейлеров. И какой бы вы посоветовали?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28476
    • Просмотр профиля
Re: производительность почтарей
« Ответ #1 : 24 Мая 2011, 22:59:04 »
Постфикс 300 сообщений по 20к за секунду переварит и не подавится.
У меня только один вопрос - что вы вообще генерите в таком объёме?

Скрипт оптимизировать. Не верю, что это 300 разных сообщений.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1158
    • Просмотр профиля
Re: производительность почтарей
« Ответ #2 : 25 Мая 2011, 03:37:05 »
Не видел SwiftMailer но подозреваю что он самым дебильным образом вызывает sendmail. Вариант - перейти на использованием SMTP.

Оффлайн Yasix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: производительность почтарей
« Ответ #3 : 26 Мая 2011, 10:53:55 »
Спасибо всем за инфу и за наводки. Перешёл на SMTP (с помощью Pear::Mail). Скорость увеличилась, но всего лишь раза в три, т.е. стало  где-то 16 сообщений в секунду.
До 300 ещё далековато. А хочется...

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Re: производительность почтарей
« Ответ #4 : 26 Мая 2011, 10:56:35 »
http://forum.symfony-project.org/viewtopic.php?f=22&t=32322
И в том же стиле.
Вам бы зачекить время генерации и отрабатывания скриптов.
Шаг за шагом можно достичь цели.

Оффлайн Yasix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: производительность почтарей
« Ответ #5 : 26 Мая 2011, 11:35:15 »
http://forum.symfony-project.org/viewtopic.php?f=22&t=32322
И в том же стиле.
Вам бы зачекить время генерации и отрабатывания скриптов.

О, уверяю вас, все эти позы я уже перепробовал. Результат - симфония отдыхает, будучи посланной в ж.
Всё на чистом php/pear.
Время чекил, а как же ж.

Вот :
Mailer: 128.984986067   Other:13.1741428375 Cnt:2398

Здесь Mailer и Other - общее время работы скрипта, в секундах (php::microtime()). Mailer - столько занимает ф-ция Pear::Mail::send, Other - всё остальное.
Cnt - число отправленных сообщений.


Код по сути взят из хрестоматии:

//...
$mail_object =& Mail::factory('smtp', array('persist'=>true));
$headers = array(
       'From'         => '=?UTF-8?B?'.base64_encode($from_name).'?= <'.$from_addr.'>',
       'Content-Type' => 'text/html; charset=UTF-8',
       'MIME-Version' => '1.0');

foreach($subscribers as $subscriber) {
       // ...
       $headers['Subject'] = '=?UTF-8?B?'.base64_encode($title).'?=';
       $recipient = $headers['To'] = $subscriber['email'];
           

       $ret = $mail_object->send($recipient, $headers, $body);
       if (PEAR::isError($ret)) { print($ret->getMessage());}

       // ...
}
« Последнее редактирование: 26 Мая 2011, 11:55:24 от Yasix »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28476
    • Просмотр профиля
Re: производительность почтарей
« Ответ #6 : 26 Мая 2011, 13:59:28 »
Сервер, через который отправляешь, твой? Что вообще в его логах?

P.S.
Включи отображение всех ошибок в PHP...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Yasix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: производительность почтарей
« Ответ #7 : 26 Мая 2011, 15:58:42 »
Сервер, через который отправляешь, твой? Что вообще в его логах?

P.S.
Включи отображение всех ошибок в PHP...

сервер мой.
щаз там как раз процесс идёт (рассылаем нашу рекламу по нашей клиентской базе).

диагностику включил E_ALL - пхп молчит. а чего ему ругаться, всё ж работает. только неспешно.


логи постфикса (последние 30 строк) (имя сервера изменено на mysite):

/var/log/mail.log
May 26 13:43:22 custom postfix/qmgr[6093]: 60E621196A5E: from=<noreply@mysite.ru>, size=15135, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: 6CD761196A26: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: 6CD761196A26: message-id=<20110526114322.6CD761196A26@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: 6CD761196A26: from=<noreply@mysite.ru>, size=15135, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: 78BBE1196A60: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: 78BBE1196A60: message-id=<20110526114322.78BBE1196A60@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: 78BBE1196A60: from=<noreply@mysite.ru>, size=15150, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtp[27165]: A36911196A29: to=<aigolok89@mail.ru>, relay=mxs.mail.ru[94.100.176.20]:25, conn_use=2, delay=0.88, delays=0.04/0.2/0.06/0.58, dsn=2.0.0, status=sent (250 OK id=1QPYyI-0006Qj-00)
May 26 13:43:22 custom postfix/smtpd[22002]: 853FA1196A6B: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/qmgr[6093]: A36911196A29: removed
May 26 13:43:22 custom postfix/cleanup[27278]: 853FA1196A6B: message-id=<20110526114322.853FA1196A6B@mysite.ru>
May 26 13:43:22 custom postfix/smtp[27141]: C307D1196A19: to=<aigesn1899@mail.ru>, relay=mxs.mail.ru[94.100.176.20]:25, conn_use=27, delay=1.8, delays=0.05/0/0.07/1.6, dsn=2.0.0, status=sent (250 OK id=1QPYyH-00029e-00)
May 26 13:43:22 custom postfix/qmgr[6093]: C307D1196A19: removed
May 26 13:43:22 custom postfix/qmgr[6093]: 853FA1196A6B: from=<noreply@mysite.ru>, size=15147, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtp[27125]: BB2611196A11: to=<aigoshaman@mail.ru>, relay=mxs.mail.ru[94.100.176.20]:25, conn_use=3, delay=0.83, delays=0.05/0.15/0.06/0.57, dsn=2.0.0, status=sent (250 OK id=1QPYyI-0007sm-00)
May 26 13:43:22 custom postfix/qmgr[6093]: BB2611196A11: removed
May 26 13:43:22 custom postfix/smtpd[22002]: 9131C1196A11: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: 9131C1196A11: message-id=<20110526114322.9131C1196A11@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: 9131C1196A11: from=<noreply@mysite.ru>, size=15153, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: 9D4B31196A19: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: 9D4B31196A19: message-id=<20110526114322.9D4B31196A19@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: 9D4B31196A19: from=<noreply@mysite.ru>, size=15141, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: A92A51196A29: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: A92A51196A29: message-id=<20110526114322.A92A51196A29@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: A92A51196A29: from=<noreply@mysite.ru>, size=15162, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: B50E21196A6D: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: B50E21196A6D: message-id=<20110526114322.B50E21196A6D@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: B50E21196A6D: from=<noreply@mysite.ru>, size=15138, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: C0D261196A6E: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: C0D261196A6E: message-id=<20110526114322.C0D261196A6E@mysite.ru>
/var/log/mail.info
May 26 13:43:22 custom postfix/qmgr[6093]: 60E621196A5E: from=<noreply@mysite.ru>, size=15135, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: 6CD761196A26: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: 6CD761196A26: message-id=<20110526114322.6CD761196A26@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: 6CD761196A26: from=<noreply@mysite.ru>, size=15135, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: 78BBE1196A60: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: 78BBE1196A60: message-id=<20110526114322.78BBE1196A60@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: 78BBE1196A60: from=<noreply@mysite.ru>, size=15150, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtp[27165]: A36911196A29: to=<aigolok89@mail.ru>, relay=mxs.mail.ru[94.100.176.20]:25, conn_use=2, delay=0.88, delays=0.04/0.2/0.06/0.58, dsn=2.0.0, status=sent (250 OK id=1QPYyI-0006Qj-00)
May 26 13:43:22 custom postfix/smtpd[22002]: 853FA1196A6B: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/qmgr[6093]: A36911196A29: removed
May 26 13:43:22 custom postfix/cleanup[27278]: 853FA1196A6B: message-id=<20110526114322.853FA1196A6B@mysite.ru>
May 26 13:43:22 custom postfix/smtp[27141]: C307D1196A19: to=<aigesn1899@mail.ru>, relay=mxs.mail.ru[94.100.176.20]:25, conn_use=27, delay=1.8, delays=0.05/0/0.07/1.6, dsn=2.0.0, status=sent (250 OK id=1QPYyH-00029e-00)
May 26 13:43:22 custom postfix/qmgr[6093]: C307D1196A19: removed
May 26 13:43:22 custom postfix/qmgr[6093]: 853FA1196A6B: from=<noreply@mysite.ru>, size=15147, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtp[27125]: BB2611196A11: to=<aigoshaman@mail.ru>, relay=mxs.mail.ru[94.100.176.20]:25, conn_use=3, delay=0.83, delays=0.05/0.15/0.06/0.57, dsn=2.0.0, status=sent (250 OK id=1QPYyI-0007sm-00)
May 26 13:43:22 custom postfix/qmgr[6093]: BB2611196A11: removed
May 26 13:43:22 custom postfix/smtpd[22002]: 9131C1196A11: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: 9131C1196A11: message-id=<20110526114322.9131C1196A11@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: 9131C1196A11: from=<noreply@mysite.ru>, size=15153, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: 9D4B31196A19: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: 9D4B31196A19: message-id=<20110526114322.9D4B31196A19@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: 9D4B31196A19: from=<noreply@mysite.ru>, size=15141, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: A92A51196A29: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: A92A51196A29: message-id=<20110526114322.A92A51196A29@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: A92A51196A29: from=<noreply@mysite.ru>, size=15162, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: B50E21196A6D: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: B50E21196A6D: message-id=<20110526114322.B50E21196A6D@mysite.ru>
May 26 13:43:22 custom postfix/qmgr[6093]: B50E21196A6D: from=<noreply@mysite.ru>, size=15138, nrcpt=1 (queue active)
May 26 13:43:22 custom postfix/smtpd[22002]: C0D261196A6E: client=localhost[127.0.0.1]
May 26 13:43:22 custom postfix/cleanup[27278]: C0D261196A6E: message-id=<20110526114322.C0D261196A6E@mysite.ru>
/var/log/mail.warn
May 26 13:39:25 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:39:25 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:39:35 custom postfix/smtpd[26656]: warning: 83.102.180.2: address not listed for hostname horn.post.ru
May 26 13:39:35 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:39:35 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:39:38 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:39:49 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:39:50 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:39:53 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:40:36 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:40:36 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:40:39 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:40:51 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:40:58 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:40:58 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:41:20 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:41:20 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:41:28 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:41:31 custom postfix/smtpd[26656]: warning: 62.117.120.98: address not listed for hostname comtube.ru
May 26 13:41:32 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:41:44 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:41:45 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:41:59 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:41:59 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:42:12 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:42:15 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:42:19 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:42:21 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:43:01 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
May 26 13:43:01 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains

или ещё какие логи нужны?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28476
    • Просмотр профиля
Re: производительность почтарей
« Ответ #8 : 26 Мая 2011, 20:25:43 »
А отправить одно письмо сразу всем получателям в голову не приходило?

E_ALL не включает E_STRICT. У тебя ошибка в скрипте, которая его сломает при переходе на 6,0.

И выправи уже
May 26 13:43:01 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Yasix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: производительность почтарей
« Ответ #9 : 26 Мая 2011, 21:10:13 »
А отправить одно письмо сразу всем получателям в голову не приходило?

E_ALL не включает E_STRICT. У тебя ошибка в скрипте, которая его сломает при переходе на 6,0.

И выправи уже
May 26 13:43:01 custom postfix/trivial-rewrite[21992]: warning: do not list domain mysite.ru in BOTH mydestination and virtual_alias_domains


Одно и сразу всем - так и напрашивается, но увы, рассылка персонализированная.
ворнинг вроде выправил, получил вот что:
May 26 18:54:47 custom postfix/qmgr[13624]: warning: mail for mail.ru is using up 4001 of 4003 active queue entries
May 26 18:54:47 custom postfix/qmgr[13624]: warning: you may need a separate master.cf transport for mail.ru
May 26 18:54:47 custom postfix/qmgr[13624]: warning: please avoid flushing the whole queue when you have
May 26 18:54:47 custom postfix/qmgr[13624]: warning: lots of deferred mail, that is bad for performance
May 26 18:54:47 custom postfix/qmgr[13624]: warning: to turn off these warnings specify: qmgr_clog_warn_time = 0
мне даже кажется, что я понимаю, что тут написано, но если подскажете, что предпринимать, чтобы не делать лишних движений, буду весьма признателен =)


включил e_strict -- весь pear был тут же обруган ... но по-моему, это уже не имеет никакого отношения к сути вопроса.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28476
    • Просмотр профиля
Re: производительность почтарей
« Ответ #10 : 26 Мая 2011, 22:11:25 »
Персонализированная рассылка одного и того же сообщения скриптом в цикле? Не смешите мои тапочки.
Если вы имеете в виду, что нежелательно светить всех адресатов в письме - так я вам этого не предлагаю. Почитайте http://tools.ietf.org/html/rfc5321 для прояснения деталей. (Если коротко, адресат письма и поле "To" заголовка - вещи, никак не связанные между собой.)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Yasix

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: производительность почтарей
« Ответ #11 : 26 Мая 2011, 22:38:03 »
для тапочек: письмо одно и то же, но в теле письма стоит ссылка "отписаться". она для каждого своя.

по сути вопроса, я так понял, сказать нечего.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28476
    • Просмотр профиля
Re: производительность почтарей
« Ответ #12 : 26 Мая 2011, 22:56:49 »
Сделайте ссылку для отписки на страничку с формочкой для ввода емейла.
Сами себе проблему придумываете, и потом героически её решаете.

По поводу сообщения от менеджера очереди, посмотрите, что это вообще за письма, может, через вас кто-то спам гоняет. (Я имею в виду - чужой спам, не ваш.)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.102 секунд. Запросов: 25.