Регистрация...

Eserv Forum / E3 / Eserv 3 Mail Server Support / Ламер и производительность acSMTP

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Добрый день!

Вот какая история приключилась. Дождался выходных, когда юзеров нет, водрузил, наконец, на сервер Eserv3+PigMail+PigProxy. Однако старый Eserv2 сносить не стал, просто сервисы по разным портам разнёс.
Старый Eserv2 работал на приём почты по POP3, новый же по-взрослому открыл наружу 25м портом, задал минимальные политики по входящей почте, что по умолчанию в PigMail были, антивирусные и антиспамовые плагины ставить не стал. Вот только количество единовременных соединений увеличил с 25 до 300. Попросил провайдера изменить MX-запись на мой сервер. И началось.
Единовременно по SMTP пытались подключиться до 270 коннектов (из них в состоянии Established не более 120). Естественно 99.999% из них отвергалось acSMTP, как и положено, но было штук 10 и нужных . Загрузка процессора Core Duo 2000 подскочила до 85-95%. Из них 3/4 — время ядра. Сервисы acSMTP, acIMAP, acWEB и Eproxy легли вглухую, с клиентами локальной сети работы никакой.
Ладно, эмпирическим подбором нашел предел работоспособности сервисов — 25-30 единовременных SMTP-коннектов (как по умолчанию и стоит ). Конечно же, из локальной сети к телу acSMTP опять-таки доступа нет, но уже по причине превышения коннектов.
        Вернулся, смеха ради обратно на 300 SMTP-коннектов. Снова сервисы заткнулись. Но операционка работает, 10% Idle Time хватает на все дела насущные. И тут попробовал я подключиться на такой загрузке к Eserv2. Смешно, но ВСЁ РАБОТАЕТ . И POP3, и прокси, и SMTP, и хорошо работает И разницы со стороны клиентов не видно.

Уж прошу пардону за многословность, но 30 SMTP-коннектов — это действительно предел для Eserv3?
 
Комментарии к этой версии (01.12.2007 21:07) [~Yurich] 7d378421
АвторДатаТекстtags
pig01.12.2007 23:04
Не предел, конечно. Но 270 подключений одновременно (и постоянно) — это изрядная атака. У меня сейчас максимум — около 4000 подключений в день.
Надо бы по логам посмотреть, как это обрабатывалось. Возможно, вам придётся настраивать чёрные списки IP, так злодеи будут отсекаться быстрее всего, с миимальной загрузкой.
imported
Yurich02.12.2007 02:05
Подтверждаю, 100-300 SMTP-подключений одновременно — это постоянная ежедневная нагрузка на наш домен со стороны спамеров По задумке, Eserv3 и должен был решить наши проблемы.
Логи смотрел, отшибает соединения по разным причинам — кто в черном списке, кто представился криво, у кого адрес отправления с опознанным по DNS не совпал... Могу лог выслать, конечно, но навряд это интересно будет. Попробую настроить black-list, но уже руки опустились — видно, что нагрузка на порядок превышает возможности Eserv3.
И все-таки, почему на загруженном процессоре Eserv2 работает, а Eserv3 — нет?
imported
pig03.12.2007 02:30
К сожалению, я сквозь сумрак смотреть не умею. У меня письма фильтрует ещё самописный антиспам (именуемый упрощённым фильтром содержания). Он здорово нагружает процессор на этапе приёма письма. Но при трёх — четырёх принимаемых-проверяемых параллельно письмах работа возможна. Правда, уже довольно медленно.

Но вообще как-то странно. Ладно SMTP-сервер, раз его по самые уши забивают. Но почему нет возможности подключиться к POP-серверу, на который никто не спамит, и в то же время исправно работает Eserv/2? Так быть не должно.
imported
ac03.12.2007 15:29
Число коннектов — не проблема. На нашем сервере тоже не хватало числа коннектов, заданного по умолчанию, расширил. И при этом кроме обслуживания двух десятков почтовых доменов на том же сервере размещено около 60 веб-сайтов (под пятью acWEB с разными конфигами), некоторые из которых, включая сам eserv.ru, весьма тяжелые PHP+бд-нагруженные сайты.

Попробую настроить black-list, но уже руки опустились — видно, что нагрузка на порядок превышает возможности Eserv3.

Ни в коем случае не превышает 120 коннектов — "детская" нагрузка для Eserv/3. Все зависит от настройки. Eserv/2 сам по себе намного медлительнее, чем Eserv/3. Просто конфиг у Eserv/2 совершенно примитивный даже в сравнении с базовым конфигом Eserv/3, не говоря уж о PigMail. Та же ситуация, что и в сравнении Eserv/2 vs Eproxy по прокси-производительности.

Во-первых, нужно смотреть не на число одновременных коннектов (там хоть тыщу ставьте, все равно они в основном ожиданиями различными "заняты", а это не грузит процессор), а на число писем в секунду, доходящих до стадии контент-проверок — антивируса, антиспама, и т.п., т.к. там процессор уже используется интенсивно. Бутылочным горлышком (для процессора) является антивирус. Оценки пределов производительности для разных антивирусов можно получить на этой странице: http://www.eserv.ru/EservClamav. Т.е. для самого быстрого антивируса — не более 20 писем в секунду.

Посмотрите по стат.логу принятых писем, включая спам (не помню точно, как именно он в PigMail называется) — сколько записей в секунду, т.е. сколько писем в секунду в вашем случае?
imported
ac03.12.2007 15:35
Yurich пишет: антивирусные и антиспамовые плагины ставить не стал

А, даже вот как...

Ну тогда мы это вообще легко разрулим, пусть хоть вся почта интернета к вам ломится одновременно. Без антивируса узким местом становится диск. Тут широкое поле для оптимизаций.
imported
Yurich04.12.2007 10:37

Ну тогда мы это вообще легко разрулим, пусть хоть вся почта интернета к вам ломится одновременно. Без антивируса узким местом становится диск. Тут широкое поле для оптимизаций.


Звучит оптимистично. Только как мы в этом случае можем оптимизировать? Нагрузка на диск IMHO минимальная: приём писем для несуществующих доменов и ящиков отключен, уровень журнала SMTP =1, ошибки приёма и тела писем не записывать. Подскажите, где ещё можно порыться?
P.S. Диск свежий SATA Barracuda 7200.12, если мне память не изменяет. Интерфейс отстроен
imported
Yurich04.12.2007 11:35
Кстати, ссылка http://www.eserv.ru/EservClamav — пустая

Пардон, всё нормально. Последняя точка в запрос закралась
imported
ac04.12.2007 16:49
Можно уменьшать подробности журналов, уменьшать число писем, дошедших до стадии контентной проверки (черными списками), кэшировать форматные строки и ini, и т.д. Но для начала хотелось бы все же получить ответ:
ac пишет: Посмотрите по стат.логу принятых писем, включая спам — сколько записей в секунду, т.е. сколько писем в секунду в вашем случае?
imported
Yurich04.12.2007 17:21
Судя по логам уровня детализации 1 — до 10 записей в сек с заголовком "
Connection from:" и до 20 записей "STAT:". Ниже цитирую случайный кусок лога. При этом netstat выдаёт 100-250 коннектов, как я и писал ранее.
Если нужен весь лог, с более подробной детализацией, отправьте мне, пожалуйста, личное сообщение, как я могу Вам переправить.

19:29:50 8237
Connection from: 80.42.110.26:2026 19:29:50 8238 Connection from: 217.132.20.188:1213 19:29:50 7543 STAT: 0:238:0:0:198094 19:29:50 8239 Connection from: 213.156.99.15:3477 19:29:50 8240 Connection from: 217.159.185.46:2747 19:29:51 8241 Connection from: 80.188.105.251:3349 19:29:51 8242 Connection from: 78.98.8.212:4104 19:29:52 8243 Connection from: 74.142.203.195:4489 19:29:52 8244 Connection from: 88.233.235.34:4809 19:29:52 8214 STAT: 0:238:0:0:8422 19:29:52 8245 Connection from: 80.7.126.73:2261 19:29:52 8213 STAT: 0:238:0:0:9360 19:29:52 8246 Connection from: 189.33.235.132:65343 19:29:53 8156 STAT: 0:94:0:0:25781 19:29:53 8161 STAT: 0:94:0:0:24297 19:29:53 8216 STAT: 0:240:0:0:8829 19:29:53 8165 STAT: 0:94:0:0:23422 19:29:53 8248 Connection from: 88.244.115.202:2528 19:29:53 8247 Connection from: 83.5.155.48:2683 19:29:53 8218 STAT: 0:236:0:0:8594 19:29:53 8224 STAT: 0:236:0:0:6610 19:29:53 8225 STAT: 0:240:0:0:6641 19:29:53 8223 STAT: 0:240:0:0:7235 19:29:53 8217 STAT: 0:236:0:0:8735 19:29:53 8227 STAT: 0:238:0:0:6250 19:29:53 8228 STAT: 0:240:0:0:5750 19:29:53 8230 STAT: 0:236:0:0:5250 19:29:53 8234 STAT: 0:236:0:0:4250 19:29:53 8233 STAT: 0:240:0:0:4766 19:29:53 8250 Connection from: 87.245.31.131:2602 19:29:53 8249 Connection from: 89.26.218.152:2093 19:29:54 8251 Connection from: 83.157.213.214:1313 19:29:54 8252 Connection from: 77.199.100.86:4078 19:29:54 8253 Connection from: 86.31.50.155:2019
imported
pig04.12.2007 18:26
Оперативный журнал тоже познавательно, но статистика принятых писем интереснее. У вас какой формат статистики сейчас разрешён? Включите собственный текстовый формат и смотрите, что пишется в DATA\stat\maillog\SMTP\

P.S. Резидентный антивирус имеется? Если да, то какой? Собственно, его в обязательном порядке надо отвадить от папки DATA, чтобы не дрался с Eserv за файлы.
imported
ac04.12.2007 19:23
Yurich пишет: Судя по логам уровня детализации 1 — до 10 записей в сек с заголовком "
Connection from:" и до 20 записей "STAT:". Ниже цитирую случайный кусок лога. При этом netstat выдаёт 100-250 коннектов, как я и писал ранее.[/quote:fef8c73fc0]Кстати, в netstat'е все эти коннекты к 25-му порту? И все ли внешние? И все ли входящие?
pig пишет: У меня сейчас максимум — около 4000 подключений в день.
У нас здесь на eserv.ru — 47000 с начала месяца, т.е. чуть больше 10000 в день в декабре. В данный момент (сейчас смотрю лог) 4-10 SMTP-подключений в минуту, т.е. тоже не много. В netstat'е коннектов сейчас 204, но львиная их доля на HTTP. Что-то похожее на атаки было в конце октября, тогда и пришлось отодвинуть разрешенное число SMTP-соединений от значения по умолчанию, чтобы для своих хватило емкости. Кстати, если сервер стоит на границе ЛС и интернета, то своих можно пускать вне очереди — на отдельный порт, видимый только изнутри. А внешним (т.е. в основном спамерам) оставить ограничения, пусть стоят в очереди. Ну, это резервный вариант на крайний случай.
imported
Yurich04.12.2007 22:44
P.S. Резидентный антивирус имеется? Если да, то какой? Собственно, его в обязательном порядке надо отвадить от папки DATA, чтобы не дрался с Eserv за файлы.

Да, висит Drweb SpiderGuard. За совет спасибо, отважу.

Кстати, в netstat'е все эти коннекты к 25-му порту? И все ли внешние? И все ли входящие?

Подтверждаю. Все на 25й порт, все внешние и все входящие.
imported
ac05.12.2007 00:34
Yurich пишет: Да, висит Drweb SpiderGuard.

Вот, уже теплее. Он ведь не только почту может отнимать у Eserv, но и файлы журналов повторно сканировать после каждой записи в лог... За что "люблю" все эту навесную резидентуру из firewall'ов и антивирусов.
imported
pig05.12.2007 01:32
Yurich пишет: висит Drweb SpiderGuard

Режим, надеюсь, оптимальный? Впрочем, сойдёт также "Создание и запись", лишь бы не "Запуск и открытие" — Eserv свои файлы регулярно перечитывает. Ещё надо исключить Eserv3*.ini — они тоже часто дёргаются, причём через родную функцию Windows, а та открывает их на запись, поэтому Спайдер их так же постоянно мусолит.
imported
Yurich05.12.2007 10:25
Да, стоял оптимальный режим. И проверка всех файлов. Каюсь, грешен, забыл пути исключить. Но, справедливости ради, спайдер ресурсы не жрал. Хотя вполне понимаю, что он мог тормозить Eserv
imported
mixsv07.12.2007 09:30
ac пишет: Кстати, если сервер стоит на границе ЛС и интернета, то своих можно пускать вне очереди — на отдельный порт, видимый только изнутри. А внешним (т.е. в основном спамерам) оставить ограничения, пусть стоят в очереди. Ну, это резервный вариант на крайний случай.


Как это реализовывается, подскажите.

Спасибо.
imported
pig07.12.2007 11:09
Пока что ручным редактированием правил.
imported
mixsv07.12.2007 11:23
Понятно. Если можно конкретно: каких правил, примерно что прописывать и как это будет взаимодействовать с клиентами?

Спасибо.
imported
pig07.12.2007 13:01
В OnStartup.rules.txt в конец списка портов дописать ещё один, обязательно с указанием интерфейса.

Как думаете, дополнительной пары портов (обычного и SSL) будет достаточно или мне лучше сделать списком, как в acWEB?
imported
mixsv07.12.2007 14:12
Я думаю, в большинстве случаев будет достаточной одной пары.
Ситуация, когда понадобится список, на мой взгляд, крайне маловероятна.

И еще вопрос. Как в этом случае будут действовать ограничения MaxMessageSize, MaxConnectio и др.? Ведь они вроде к интерфейсу не привязываются?
imported
pig07.12.2007 14:26
К интерфейсу — не привязаны. Тут уже надо MaxConnectionsFromIP в дело подключать. У меня пока не реализовано.
imported
mixsv07.12.2007 15:01
Как же разруливается ситуация описанная уважаемым ac:

ac пишет: своих можно пускать вне очереди — на отдельный порт, видимый только изнутри. А внешним (т.е. в основном спамерам) оставить ограничения, пусть стоят в очереди.


MaxConnection ведь общий?
imported
ac07.12.2007 18:28
Он общий в базовом режиме. А для разделения портов можно использовать режим UsePool, и там совсем другой принцип — пул рабочих потоков, лимиты на одновременно работающее их к-во можно задавать per socket в OnServerThreadStartup.

А у вас что, уже указанный "крайний случай"?
imported
mixsv07.12.2007 18:38
Нет, конечно. Вопрос для самообразования. Полезно знать об интересных возможностях.

Я так понимаю, что этот режим включается как то особо и если возникнет необходимость обращаться к вам?
imported
ac07.12.2007 18:57
Да, штатной ручки для этого нет, т.к. мысль о возможной полезности такого режима не часто приходит в голову Вообще неизвестно, что лучше — настраивать эти "двойные стандарты" в одном сервере или просто запускать отдельные серверы на входящую и исходящую почту, с отдельными конфигами.

и если возникнет необходимость обращаться к вам?
И быть готовым стать нашим испытательным полигоном для такого экзотического конфига.
imported
mixsv07.12.2007 19:23
А и правда, на мой взгляд "штатно" кофигурить два сервера проще и даже безопасней. Встает только вопрос о законности использования двух серверов на одну лицензию, хотя если на входном сервере не заводить ящики, а использовать его только в качестве шлюза.

Спасибо. В целом все понятно.
imported
ac07.12.2007 20:02
У нас лицензии на сервер, в смысле на машину. Так что если в пределах одной машины два aSMTP, то не нарушение.

Хотя, если у конторы ТАК МНОГО почты, что приходится вводить такие хитрые политики, то наверное у неё и средств на второй Eserv хватит
imported
Yurich07.12.2007 21:29
Если это камень в наш огород, то деньги пришлось тратить на другое решение — срочно уходить на профессиональный майл-хостинг. Что с ламера возьмёшь . Не хочу ничего плохого сказать про Eserv/3, наоборот, он мне очень понравился своими функциями и гибкостью. Особенно с добавлениями от Pig. Просто нужно было экстренно срочно наладить почту любыми путями.
imported
ac07.12.2007 21:41
Вовсе не имел я вас в виду. И никого другого. Я даже не знал, что вы куда-то переключились.

Очень интересно, какой такой профессиональный майл-хостинг оказался лучше локального сервера?
imported
Yurich07.12.2007 22:13
Лучше только в том плане, что всего за день жизнь наладилась. Тот спам-траффик, что не смог разгрести наш местный провайдер (не будем показывать пальцем, тем более, что мы земляки), и с которым у меня были вышеозначенные проблемы на Eserv/3, успешно разгреб питерский BizHost по тарифу "vipmail". Теперь он работает, как большой спам-фильтр. А локальный Eserv/2 остался, куда ж я без него.
Ещё раз подчёркиваю, за те три дня, что я работал c Eserv/3+PigMail, я свыкся с ними и только радовался их функциональности и теперь мрачно тоскую . Вполне отдаю себе отчёт, что посидев ещё дня два я бы, с Вашей помощью, поборол все проблемы. Но время не терпит: 90 злых пользователей висели над душой непрерывно, да и мои служебные обязанности гораздо шире.

Кстати, спасибо за помощь и участие!
imported
ac08.12.2007 05:13
А какой спам-фильтр на Bizhost'е?

У какого-то хостера, тоже с *biz* в названии, я несколько месяцев назад тестировал сервис антиспама Касперских. Но он вроде никак не настраивался и фильтровал около 80% (я туда один из своих малоиспользуемых com-доменов направлял, туда пишут 100% спамеры, так что легко считать). А тут вам в vipmail'е обещают "99 при правильной настройке". Очень интересно, что за софт.
imported
Yurich08.12.2007 13:57
Точно проверка по EHLO, RBL, затем SpamAssassin. Остального пока сам не знаю
imported
Работает на Eserv/5.05567 (10.02.2020)