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

Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-29 15:52:02
Laa
Здравствуйте.

Замечаю, что при нагрузке портится авторизация. Выглядит это так:

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

mailq
...
 3h  205K 1LSTwX-000Pyy-9P <"uid=somemail@domain.ru U=somemail@domain.ru"@domain.ru>
          rcpt1@domain2.ru

 2h  2.0K 1LSUb4-0001hf-MD <>
          "uid=somemail@domain.ru U=somemail@domain.ru"@domain.ru

78m  2.0K 1LSV4N-0002m9-2L <>
          "uid=somemail@domain.ru U=somemail@domain.ru"@domain.ru
...
и такого много. Такое возникает когда увеличивается нагрузка на почтовик. Вот, например сегодня, идет какая-то атака...

возможно тут ДБ не справляется, или еще что. В спокойные периоды времени такого нет. Все хорошо.

Как бороться с этим?

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-29 16:38:10
Laa
Простите, портится не авторизация, а адрес отправителя!
Увидел это:

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

2009-01-28 16:49:06 1LSAmu-0001GV-Mq <= "uid=sender@domain.ru U=sender@domain.ru"@domain.ru 
H=(LocalHost) [x.x.x.x]:8574 I=[194.x.x.x]:25 P=esmtpa A=login:uid=sender@domain.ru 
U=sender@domain.ru S=112561 from <sender@domain.ru> for somercpt@domain2.ru
Авторизация прошла нормально, а вот адрес отправителя попртился.
Почему? :(

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-29 17:22:51
Laa
Нашел проблему, разбираюсь с утентификаторами.

Мне надо чтобы могли пользователи с чужими email отправлять почту через мой почтовый сервер, авторизируясь под специальной учетной записью.
Сейчас уже смог добиться устранения этой ошибки (control = submission/domain=), но работает не совсем так как хочется.

Как бы добиться совсем того результата, который хочется?

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-29 17:26:23
Laa
И до сих пор не понятно почему на нагрузках до 100 одновременных подключений к exim этой проблемы нет, а при больших нагрузках всплывает... :cz2:

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-29 23:34:06
Alex Keda
вы покажите что именно щас не так.
телепатов тут нет.

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-29 23:48:26
Laa
Да глупости у меня были тут в server_set_id:

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

login:
  driver = plaintext
  public_name = LOGIN
  server_prompts = "Username:: : Password::"
  server_condition = "${if and { \
                        {!eq{$1}{}} \
                        {!eq{$2}{}} \
                        {crypteq{$2}{${lookup mysql{MYSQL_Q_AUTHPWD1}{$value}fail}}} \
                        } {yes}{no}}"
  server_set_id = uid=$1 U=$1
control=submission не было вообще для авторизированных пользователей. Сейчас добавил и наблюдаю. Пока все хорошо. Буду несколько дней наблюдать, потом сообщу.

Сейчас так:

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

...
        accept  authenticated   = *
                set acl_m_sndrrcptins   = ${lookup mysql{MYSQL_Q_SNDRRCPT_INS}}
                #control                = submission/domain=
                control         = submission/sender_retain
...
Так все хорошо, а при submission/domain в mail from уходит учетная запись авторизации, а не настроенная у клиента, в rfc822-заголовках все правильно. При sender_retain все работает как надо. Но пока не понятно, будет ли это работать при увеличенной нагрузке. Ведь и без control=... работало на не очень критичных нагрузках.

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-29 23:50:26
Alex Keda
будет. если бы не работало - были бы пачки народу по всем форумам с риками про экзим гавно =)))
===
а вообще - про нагрузки - вам до mail.ru далеко, а у них экзим, хоть и пилёный =)))
и работает.

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-30 11:41:15
Laa
Я подозреваю, что проблема в связке с БД.
У меня при вчерашней атаке было под 25% в топе загрузка процессора mysqld. Процесс exim тоже некисло грузил.. ну и свои юзеры стали слать почту и у нескольких подряд всплыли проблемы. В основном у тех, кто пользуется общим аккаунтом для авторизации и не-моими ящиками (то есть авторизируясь шлют через мой почтовик).

... блин, везет мне на какие-то подземные стуки. :sorry:

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-30 11:50:43
Alex Keda
ну значит не экзим а база виновата.
число коннектов разрешите больше.

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-30 13:23:47
Laa
уже сделал! :)
Спасибо за идею. :drinks:

Но меня пугает что mysql так разрывается от простых запросиков... да, их много, но так закипать не должен.
Блин, вижу же что реально принимается около 1% почты из числа коннектов, а строить лимиты чревато... эх.

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-30 13:37:04
Laa
А еще проанализировал все sql-запросы и таблицы, некоторые вынес из sql и вложил в конфиг, так как они не меняются, а mysql лишний раз дергается. Запустил логи mysql и получил почву для размышлений. Вот.

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-30 14:29:42
Alex Keda
ну, конфиги же у всех типовые - на все случаи жизни.
а когда случай особенный - есть смысл заняться оптимизацией.

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-30 16:11:42
Laa
Таки проблема осталась :(

Пользователь авторизируется и от него принимается письмо так:
2009-01-30 16:06:36 1LSt4u-000BYT-Hj <= "xx@xx1.ru"@xx2.ru H=(LocalHost) [85.x.x.x]:9636 I=[194.x.x.x]:25 P=esmtpa A=login:xx@xx1.ru S=3048 id=000001c982db$93f1dd00$bbd59700$@ru from <xx@xx1.ru> for yy@yy.ru
Почему добавляется xx2.ru домен? :st:
Блин, редко, но добавляется!

Re: Портится авторизация в Exim при нагрузке.

Добавлено: 2009-01-30 17:04:05
Laa
Убрал 4 sql-запроса из конфига, увеличил максимальное кол-во подключений к sql, и тем не менее стало еще больше тут:

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

Queries per second avg: 11.650
было до 8. :oops:
Таки не хватало.