Exim и локальная отправка

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-17 19:59:06

Люди, хелп!
Есть фрибсда, есть екзим.
Есть сайт который с помощью пхп генерит письма, но они уходят слишком медленно.
Подскажите плиз, как ускорить отправку писем,т.к. в некоторые моменты времени на отправку писем уходит от 3 до 10 секунд.

P.S. Какие куски конфига и что кроме екзима надо ?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение Alex Keda » 2008-07-18 0:11:19

ещё раз.
откуда уходят? как определил что 3 секунды?
Убей их всех! Бог потом рассортирует...

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 7:40:38

lissyara писал(а):ещё раз.
откуда уходят? как определил что 3 секунды?
ещё раз описываю:
есть сервер на фре, на нём апач и ессно пхп,есть некий сайт,при определённых действиях пользователей он генерит письмо и отправляет его средствами пхп на почтовые ящики, почтовик крутиться на той же машине.
3 секунды - это время когда нажимаеться кнопка некая "изменить" и после этого генериться письмо, так вот от нажатия этой кнопки до обновления страницы это время.

да ещё учитывая то что часть пользователей - скажем так админов/модеров сидят в локальной сетке с этим серваком, а к нему прикручен 2х мегабитный flat'овый канал.
Вот от сюда и выходит задача ускорить обработку и отправку этих писем.

Скажем ещё так - на первом VPS-хостинге стоял постфикс и с него отправка шла гораздо быстрее, скажем так ещё у них на их домен валит много спама, по этому при переезде на новый свой сервак был выбран именно екзим (имхо) - колво спама уменьшилось гораздо (но тут заслуга не МТА а знания того или иного МТА).

Вот такой трабл, помогите плиз разрулить.

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Exim и локальная отправка

Непрочитанное сообщение lerryc » 2008-07-18 7:54:31

3 сек - понятие относительное. имхо
у тебя потенциально три точки затупа - скрипт\маил\апач
средствами пхп сними дамп времени сколько долго от начала до конца скрипта и сколько времени уходит на опретатор mail $mesg
зависит ли это от общей нагрузки на сервак
машина думать не может, машина должна ехать

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 8:06:37

lerryc писал(а):3 сек - понятие относительное. имхо
у тебя потенциально три точки затупа - скрипт\маил\апач
средствами пхп сними дамп времени сколько долго от начала до конца скрипта и сколько времени уходит на опретатор mail $mesg
зависит ли это от общей нагрузки на сервак
скрипт не изменился, апач вроде не тупит...нагрузка....хм...есть немного но не на столько что бы тормозила так.
можешь подсказать как измерить время обработки скрипта - я с пхп не особо знаюсь :oops: ?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение zingel » 2008-07-18 8:07:46

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

time /path/to/script
Z301171463546 - можно пожертвовать мне денег

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 8:23:18

zingel писал(а):

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

time /path/to/script
а куда оно писать будет ?
СТОП!
а письмо-то шлёться у меня из пхпшного скрипта, таким макаром не получиться отправить
есть ещё какието варианты ?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение zingel » 2008-07-18 8:24:35

измерить, время работы любого скрипта, команда time, писать будет в stdout, на пхп

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

int time  ( void  )
Z301171463546 - можно пожертвовать мне денег

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 8:27:30

zingel писал(а):измерить, время работы любого скрипта, команда time, писать будет в stdout
ну это я понял, но ведь эта команда *NIXовая, как мне измерить - в скрипт передаёться куча всего как я понимаю ?!

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение zingel » 2008-07-18 8:29:55

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

The time utility is expected to conform to ISO/IEC 9945-2:1993
     (``POSIX'').
чего измерить то нужно?скрипт тогда давайте...
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение Alex Keda » 2008-07-18 8:44:47

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

cat /etc/mail/mailer.conf
до кучи - неплохо бы посмотреть на конфиг экзима - может он чё проверяет.
также сделать тестовую отправку с консоли с отладкой и посмотреть на каком моменте тормозит
Убей их всех! Бог потом рассортирует...

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Exim и локальная отправка

Непрочитанное сообщение lerryc » 2008-07-18 8:48:47

belya-dj писал(а):
lerryc писал(а):3 сек - понятие относительное. имхо
можешь подсказать как измерить время обработки скрипта - я с пхп не особо знаюсь :oops: ?
в начале скрипта (контрольной точки)
$ts= microtime(); $ts=explode(' ',$ts);

в конце скрипта (в контрольной точке)
$te= microtime(); $te=explode(' ',$te);

$totaltime= round(($te[0]+$te[1]-$ts[0]-$ts[1]),4);
echo " Total Time : $totaltime ";

[0] и [1] после эксплода - это сек и доли секунды до надцатого знака $timer=$ts[1];
урезали до 4-х перед выводом
' ' <- тут пробел
машина думать не может, машина должна ехать

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 9:18:28

lissyara писал(а):

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

cat /etc/mail/mailer.conf
до кучи - неплохо бы посмотреть на конфиг экзима - может он чё проверяет.
также сделать тестовую отправку с консоли с отладкой и посмотреть на каком моменте тормозит

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

cat mailer.conf
#
# Execute the Courier sendmail program, named /usr/local/bin/sendmail
#
#sendmail       /usr/local/bin/sendmail
#send-mail      /usr/local/bin/sendmail
#mailq          /usr/local/bin/mailq
#newaliases     /usr/local/sbin/makealiases
sendmail        /usr/local/sbin/exim
send-mail       /usr/local/sbin/exim
mailq           /usr/local/sbin/exim -bp
newaliases      /usr/local/sbin/exim -bi
hoststat        /usr/local/sbin/exim
purgestat       /usr/local/sbin/exim
в приложеном файле конфиг.
Вложения
config.txt
это конфиг екзима
(25.17 КБ) 22 скачивания

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение Alex Keda » 2008-07-18 10:56:40

эта, с отладкой отправь. с локалхоста.
толжен тупанть на том же моменте
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение Alex Keda » 2008-07-18 10:57:30

чё за сатанинский конфиг такой? =)
Убей их всех! Бог потом рассортирует...

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 11:01:18

lissyara писал(а):чё за сатанинский конфиг такой? =)
ну извините :)
просто на время тестов практически все фильтры и проверки отключил :pardon:

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 11:02:16

lissyara писал(а):эта, с отладкой отправь. с локалхоста.
толжен тупанть на том же моменте
может конечно и глупый вопрос - но подскажи как :oops:

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение Alex Keda » 2008-07-18 11:06:51

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

exim -d+all admin@lissyara.su < /etc/rc.conf 
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение Alex Keda » 2008-07-18 11:07:10

а вообще - судя по вопросам - советую читать доку.
Убей их всех! Бог потом рассортирует...

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Exim и локальная отправка

Непрочитанное сообщение lerryc » 2008-07-18 11:23:02

belya-dj писал(а):
lissyara писал(а):чё за сатанинский конфиг такой? =)
ну извините :)
просто на время тестов практически все фильтры и проверки отключил :pardon:
если это действительно тот конфиг что действительно стоит у экзима - то я не понял одного

ты вроде как бы отключил доступ к сокетам антивируса и антиспама - и в то же время отправляешь письма на проверку спама и вирусов

на месте экзима - я бы затупил

ps\ а может я и на своем месте сегодня туплю :st:
машина думать не может, машина должна ехать

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 11:32:12

воообщем вывод

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

exim -d+all dj@domain.com < /etc/rc.conf
в аттаче exim.zip (большой вышел пришлося пакануть) :)

по поводу доки - читал, по этому и спрашиваю здесь, если судить по вопросам - да я не очень опытный с екзимом - я тока учусь :-D

воообщем вывод

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

time `exim -d+all dj@domain.com < /etc/rc.conf` 
вот такой:

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

0.007u 0.015s 0:00.00 0.0%      2340+932k 0+8io 0pf+0w
но по времени реально секунды 3 и проходит - помоему это долго
Вложения
exim.zip
stduot
(22.14 КБ) 13 скачиваний

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim и локальная отправка

Непрочитанное сообщение Alex Keda » 2008-07-18 11:38:37

не. я там ничё не увижу.
увидеть можешь тока ты - на каом моменте у тя по экрану остановиться бег логов на эти три секунды.
Убей их всех! Бог потом рассортирует...

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 11:42:42

lissyara писал(а):не. я там ничё не увижу.
увидеть можешь тока ты - на каом моменте у тя по экрану остановиться бег логов на эти три секунды.
да , протупил :smile:

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

11:09:35 95558 calling local_scan(); timeout=300
11:09:35 95558 LOG: MAIN
11:09:35 95558   SA: Debug: SAEximRunCond expand returned: '1'
11:09:35 95558 LOG: MAIN
11:09:35 95558   SA: Debug: check succeeded, running spamc
>>>>>>>>>--------------- вот тута тупит на 1-2 секунды (120ая строка)
11:09:38 95558 LOG: MAIN
11:09:38 95558   SA: Action: scanned but message isn't spam: score=-0.1 required=5.0 (scanned in 3/3 secs | Message-Id: E1KJl1z-000OrG-2S@mail.domain.com). From <root@domain.com> (local) for dj@domain.com

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Exim и локальная отправка

Непрочитанное сообщение lerryc » 2008-07-18 11:59:40

или довыруби проверку на спам в конфиге или добавь в конфиг SA domain.com в зону trusted
машина думать не может, машина должна ехать

belya-dj
рядовой
Сообщения: 37
Зарегистрирован: 2007-11-19 16:10:10

Re: Exim и локальная отправка

Непрочитанное сообщение belya-dj » 2008-07-18 13:54:13

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

exim -d+all dj@domain.com < /etc/rc.conf
13:29:41 98766 Exim version 4.68 (FreeBSD 6.2) uid=0 gid=0 pid=98766 D=fffdffff
Berkeley DB: Sleepycat Software: Berkeley DB 4.1.25: (December 19, 2002)
Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc TCPwrappers OpenSSL Content_Scanning Old_Demime Experimental_SPF
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0:1:3
Size of off_t: 8
13:29:41 98766 changed uid/gid: forcing real = effective
13:29:41 98766   uid=0 gid=0 pid=98766
13:29:41 98766   auxiliary group list: 0
13:29:41 98766 seeking password data for user "root": cache not available
13:29:41 98766 getpwnam() succeeded uid=0 gid=0
13:29:41 98766 seeking password data for user "daemon": cache not available
13:29:41 98766 getpwnam() succeeded uid=1 gid=1
13:29:41 98766 seeking password data for user "bind": cache not available
13:29:41 98766 getpwnam() succeeded uid=53 gid=53
13:29:41 98766 configuration file is /usr/local/etc/exim/configure
13:29:41 98766 log selectors = ffffffff 7fffffff
13:29:41 98766 LOG: MAIN
13:29:41 98766   cwd=/usr/local/etc/exim 3 args: exim -d+all dj@domain.com
13:29:41 98766 trusted user
13:29:41 98766 admin user
13:29:41 98766 changed uid/gid: privilege not needed
13:29:41 98766   uid=26 gid=6 pid=98766
13:29:41 98766   auxiliary group list: 6 6 26 465
13:29:41 98766 originator: uid=0 gid=0 login=root name=Charlie Root
13:29:41 98766 sender address = root@domain.com
13:29:41 98766 set_process_info: 98766 accepting a local non-SMTP message from <root@domain.com>
13:29:41 98766 Sender: root@domain.com
13:29:41 98766 Recipients:
13:29:41 98766   dj@domain.com
13:29:41 98766 search_tidyup called
13:29:41 98766 >>Headers received:
13:29:41 98766
13:29:41 98766 rewrite_one_header: type=F:
13:29:41 98766   From: Charlie Root <root@domain.com>
13:29:41 98766 search_tidyup called
13:29:41 98766 >>Headers after rewriting and local additions:
13:29:41 98766 I Message-Id: <E1KJnDZ-000Ph0-VR@mail.domain.com>
13:29:41 98766 F From: Charlie Root <root@domain.com>
13:29:41 98766   Date: Fri, 18 Jul 2008 13:29:41 +0300
13:29:41 98766
13:29:41 98766 Data file written for message 1KJnDZ-000Ph0-VR
13:29:41 98766 expanding: ${tod_full}
13:29:41 98766    result: Fri, 18 Jul 2008 13:29:41 +0300
13:29:41 98766 condition: def:sender_rcvhost
13:29:41 98766    result: false
13:29:41 98766 expanding: from $sender_rcvhost
13:29:41 98766
13:29:41 98766    result: from
13:29:41 98766
13:29:41 98766 skipping: result is not used
13:29:41 98766 condition: def:sender_ident
13:29:41 98766    result: true
13:29:41 98766 expanding: $sender_ident
13:29:41 98766    result: root
13:29:41 98766 expanding: from ${quote_local_part:$sender_ident}
13:29:41 98766    result: from root
13:29:41 98766 condition: def:sender_helo_name
13:29:41 98766    result: false
13:29:41 98766 expanding: (helo=$sender_helo_name)
13:29:41 98766
13:29:41 98766    result: (helo=)
13:29:41 98766
13:29:41 98766 skipping: result is not used
13:29:41 98766 expanding: ${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
13:29:41 98766  }}
13:29:41 98766    result: from root
13:29:41 98766 condition: def:received_protocol
13:29:41 98766    result: true
13:29:41 98766 expanding: with $received_protocol
13:29:41 98766    result: with local
13:29:41 98766 condition: def:tls_cipher
13:29:41 98766    result: false
13:29:41 98766 expanding: ($tls_cipher)
13:29:41 98766
13:29:41 98766    result: ()
13:29:41 98766
13:29:41 98766 skipping: result is not used
13:29:41 98766 condition: def:sender_address
13:29:41 98766    result: true
13:29:41 98766 expanding: (envelope-from <$sender_address>)
13:29:41 98766
13:29:41 98766    result: (envelope-from <root@domain.com>)
13:29:41 98766
13:29:41 98766 condition: def:received_for
13:29:41 98766    result: true
13:29:41 98766 expanding:
13:29:41 98766  for $received_for
13:29:41 98766    result:
13:29:41 98766  for dj@domain.com
13:29:41 98766 expanding: Received: ${if def:sender_rcvhost {from $sender_rcvhost
13:29:41 98766  }{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}${if def:sender_helo_name {(helo=$sender_helo_name)
13:29:41 98766  }}}}by $primary_hostname ${if def:received_protocol {with $received_protocol}} ${if def:tls_cipher {($tls_cipher)
13:29:41 98766  }}(Exim $version_number (FreeBSD))
13:29:41 98766  ${if def:sender_address {(envelope-from <$sender_address>)
13:29:41 98766  }}id $message_exim_id${if def:received_for {
13:29:41 98766  for $received_for}}
13:29:41 98766    result: Received: from root by mail.domain.com with local (Exim 4.68 (FreeBSD))
13:29:41 98766  (envelope-from <root@domain.com>)
13:29:41 98766  id 1KJnDZ-000Ph0-VR
13:29:41 98766  for dj@domain.com
13:29:41 98766 >>Generated Received: header line
13:29:41 98766 P Received: from root by mail.domain.com with local (Exim 4.68 (FreeBSD))
13:29:41 98766  (envelope-from <root@domain.com>)
13:29:41 98766  id 1KJnDZ-000Ph0-VR
13:29:41 98766  for dj@domain.com; Fri, 18 Jul 2008 13:29:41 +0300
>>>>>>>>>>>>>>>>>>>----------------------------<<<<<<<<<<<<<<<<<<<<<<<
13:29:41 98766 calling local_scan(); timeout=300                   <<<<<<<<<<< смотреть сюда
>>>>>>>>>>>>>>>>>>>----------------------------<<<<<<<<<<<<<<<<<<<<<<<
13:29:46 98766 LOG: MAIN
13:29:46 98766   SA: Action: scanned but message isn't spam: score=-0.1 required=5.0 (scanned in 5/5 secs | Message-Id: E1KJnDZ-000Ph0-VR@mail.domain.com). From <root@domain.com> (local) for dj@domain.com
13:29:46 98766 local_scan() returned 0 NULL
13:29:46 98766 expanding: ${tod_full}
13:29:46 98766    result: Fri, 18 Jul 2008 13:29:46 +0300
13:29:46 98766 Writing spool header file
13:29:46 98766 Size of headers = 683
13:29:46 98766 LOG: MAIN
13:29:46 98766   <= root@domain.com U=root P=local S=3146
13:29:46 98766 search_tidyup called
13:29:46 98766 search_tidyup called
13:29:46 98766 >>>>>>>>>>>>>>>> Exim pid=98766 terminating with rc=0 >>>>>>>>>>>>>>>>
13:29:46 98768 exec /usr/local/sbin/exim -d=0xfffdffff -Mc 1KJnDZ-000Ph0-VR
вообщем всё поотключал, осталься только local_scan() для екзима, но там походу где-то стоит тайм аут большой, при его отключении всё просто вылетает как в трубу, кстати с таким тестом нашёл ещё баги в конфиге но на данный момент они в конфиге не мешают.

всплывает след вопрос - где искать этот самый тайм-аут у локал_скана ?
Последний раз редактировалось belya-dj 2008-07-18 13:55:40, всего редактировалось 1 раз.