Страница 1 из 1
Падение mysql из-за postfix
Добавлено: 2008-02-04 18:00:02
spiner
Привет.
Имеется postfix 2.2 и mysql 4.1.20.
Как-то вечером перестала работать почта.
Смотрю логи Postfix и понимаю, что сыпалась какая-то хрень с одного из клиентов, а именно в поле mail to стояло вот это <C:MailerOUT>. Причем проверку SASL клиент прошел.
Эту "почту" этот клиент пытался отправить 36 раз за 54 секунды. После этого он тоже продолжал пытаться отправить, но тут уже не хватило mysql, а именно, postfix не мог обратиться к карте пользователей:
Temporary lookup failure; потому что
unix:/var/run/mysqld/mysqld.sock: Too many connections
Периодичность попыток у этого клиента дальше была такой же и продолжалось это около 30 минут. Потом попытки закончились и все заработало само собой.
Так вот, возникает вопрос: почему too many connections, если по умолчанию в mysql разрешается 100 сессий одновременно?
Postfix же не пытался создать много однвоременных сессий? Также на сервере крутится биллинг, но он вряд ли мог держать много одновременных сессий.
И еще вопрос: как вы с такими случаями боретесь?
У меня smtpd_client_connection_count_limit = 50.
P.S. В итоге позвонил пользователю, с компьютера которого это все происходило. Он пожаловался на зависание компьютера в это момент и сказал, что я как-то должен бороться с такими случаями. Я с ним полностью согласен, но я не знаю как. Подскажете?
Спасибо.
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 18:05:57
AzureZ
Привет. Сделай побольше соединений с базой.
А так же напиши точно на что ругается постфикс. cat /var/log/maillog | grep mysql
И еще вопрос. Для управления ящиками используется postfixadmin?
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 19:52:17
spiner
Спасибо за ответ.
Сделай побольше соединений с базой.
мне кажется, что это не выход из ситуации.
cat /var/log/maillog | grep mysql
Код: Выделить всё
Jan 25 18:36:01 main postfix/smtpd[24803]: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Too many connections
Jan 25 18:36:04 main postfix/smtpd[24823]: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Too many connections
Jan 25 18:36:07 main postfix/smtpd[24844]: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Too many connections
Jan 25 18:36:07 main authdaemond: failed to connect to mysql server (server=localhost, userid=vmailuser): Too many connections
Jan 25 18:36:10 main postfix/smtpd[24834]: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Too many connections
Jan 25 18:36:31 main postfix/smtpd[24929]: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Too many connections
Jan 25 18:36:37 main postfix/smtpd[24950]: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Too many connections
Jan 25 18:36:41 main postfix/smtpd[24961]: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Too many connections
Jan 25 18:36:41 main postfix/smtpd[24968]: warning: connect to mysql server unix:/var/run/mysqld/mysqld.sock: Too many connections
.
.
.
etc
Для управления ящиками используется свой скрипт на перле.
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 20:54:27
Fastman
spiner писал(а):Спасибо за ответ.
Сделай побольше соединений с базой.
Для управления ящиками используется свой скрипт на перле.
есть переменная max_connections в mySQL по умолчанию значение 100 по моему.. если переменная не прписана Это на ВСЮ базу.
проблема в том что либо коннекты не успевают отваливаться и накапливается 100 одновременных.
Либо что тоже может быть - твой скрипт не закрывает корректно соединение с базой.
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 21:19:47
spiner
Либо что тоже может быть - твой скрипт не закрывает корректно соединение с базой.
скрипт все нормально закрывает - это точно, но еще точнее, он уже не выполняется около двух недель.
Мне кажется 100 одновременных коннектов - это очень много. Почтовых пользователей у меня около 300. Два года работает, а сейчас вдруг...
Действительно max_connections не задана, и действительно, как я писал в первом посте, этот параметр равен 100.
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 21:27:11
Fastman
spiner писал(а):Либо что тоже может быть - твой скрипт не закрывает корректно соединение с базой.
скрипт все нормально закрывает - это точно, но еще точнее, он уже не выполняется около двух недель.
Мне кажется 100 одновременных коннектов - это очень много. Почтовых пользователей у меня около 300. Два года работает, а сейчас вдруг...
Действительно max_connections не задана, и действительно, как я писал в первом посте, этот параметр равен 100.
Да но у тебя же еще как ты пишешь и биллинг. Поэтому поковыряй конфиг и протести.
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 21:42:34
AzureZ
Попробуй выполнить mysqladmin processlist в тот момент когда у вас постфикс будет матюгаться, и посмотрите к какой базе открыто наибольшее количество соединений. У меня порядка 100 пользователей и максимум соединений к базе было около 8
И еще момент. Используется ли proxymap?? Если нет то лучше включить.
Выдержка из какойто статьи "Вы можете уменьшить количество соединений с сервером баз данных, используя сервис Postfix proxymap"
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 22:19:21
paranoidchaos
юзай постгри вместо мускула и поставь фильтры на постфиксе чтобы херню не пихали
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 22:34:57
spiner
Да но у тебя же еще как ты пишешь и биллинг. Поэтому поковыряй конфиг и протести.
исключено. ковырял. тестилось два года.
Попробуй выполнить mysqladmin processlist в тот момент когда у вас постфикс будет матюгаться, и посмотрите к какой базе открыто наибольшее количество соединений.
К сожалению не получится. Нет постоянного доступа к серверу. Но идея такая была.
И еще момент. Используется ли proxymap?? Если нет то лучше включить.
Не используется. Почитал ман, по-моему как раз то, что нужно.
поставь фильтры на постфиксе чтобы херню не пихали
ты имеешь ввиду smtpd_sender_restrictions и smtpd_recipient_restrictions?
Не подскажешь рабочий вариант?
Всем спасибо!
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 22:53:08
Fastman
ты имеешь ввиду smtpd_sender_restrictions и smtpd_recipient_restrictions?
Не подскажешь рабочий вариант?
Всем спасибо!
что то вроде такого у меня прописано:
Код: Выделить всё
disable_vrfy_command = yes
smtpd_helo_required = yes
smtp_always_send_ehlo = yes
smtpd_hard_error_limit = 5
smtpd_timeout = 120s
smtp_helo_timeout = 60s
smtp_mail_timeout = 60s
smtp_rcpt_timeout = 90s
maps_rbl_reject_code = 554
smtpd_recipient_restrictions=
permit_mynetworks,
permit_sasl_authenticated,
reject_unlisted_recipient,
reject_unknown_recipient_domain,
reject_unverified_recipient,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
reject_rbl_client list.dsbl.org,
reject_rbl_client dynablock.wirehub.net,
reject_rbl_client blackholes.wirehub.net,
reject_rbl_client dnsbl.njabl.org
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 23:04:11
AzureZ
Можно еще поставить /usr/ports/mail/postfix-policyd-weight
Re: Падение mysql из-за postfix
Добавлено: 2008-02-04 23:11:37
spiner
Всем спасибо!
Буду пробовать proxymap и restrictions.
Re: Падение mysql из-за postfix
Добавлено: 2008-02-05 1:19:57
Alex Keda
когда-то у меня был дбмайл...
и 30 юзеров...
=========
у меня стояло 600 коннектом. если меньше - начинались проблемы.
ПОэтому рассказы про сотню - что это много ....
это немного. Увеличь хотя бы вдвое.
Re: Падение mysql из-за postfix
Добавлено: 2008-02-05 8:37:42
spiner
600 коннектов на 30 пользователей? Что же они делали?
Хотя, впрочем, это уже не по теме..
Re: Падение mysql из-за postfix
Добавлено: 2008-02-05 9:52:14
Alex Keda
это дбмайл

))
Такая вот хреновина...