LINUX.ORG.RU
ФорумAdmin

Sendmail load average


0

0

Доброго времени суток уважаемые. Требуется... Нет, не скорая медицинская помощь;), скорее совет. В общих чертах история такова.

Есть почтовик (PentiumII 266 MHz, 128 RAM). Крутится там sendmail + антивирус касперского. Не сказать что все летало, скорее ходило. Никаких претензий и нареканий к работе не было. Душил он себе втихую вирей, почту доставлял исправно и быстро. Все проблемы начались как обычно - захотелось лучшего=). Пользователи стали жаловаться на достаточно большое колличество спама в почтовых ящиках. По роду своей деятельности контора государственная, соответственно адреса электронной почты вывешивались чуть ли не на каждом углу в интернете. Жалобы есть жалобы, реагировать на них необходимо, прикручиваю к procmail spamassassin. Настраиваем, тестируем - все просто здорово, теперь можно душить и спам казалось бы...

Проходит два дня - первые неприятности: сендмайл в нокауте, out of memory. ОК, пробуем решить проблему грубой силой. Выдергиваю 32 мега памяти, на ее место впихиваю 128 метровую планку. Грузимся, тестируем - все здорово. Проходит еще пол дня - сендмайл снова уходит в глубокое погружение в свопинг и умирает: out of memory. Наблюдения за сервером дали интересные результаты: каждый процесс procmail запускает spamassasin, при этом колличество памяти которое используется антиспамовым фильтром, в процессе работы, может увеличится в полтора - два раза. Получается своеобразная бомба замедленного действия. Ладно, крутим конфиги: DelayLA=8, QueueLA=12, RefuseLA=16. Тестируем: при плавном нарастании нагрузки все работает, скорость приема почты сначала снижается, затем письма просто отправляются в queue, когда нагрузка становится экстремальной - прим почты прекращается. Тест номер два - резкое возрастание нагрузки был с треском провален. Колличество процессов в системе наростало гораздо быстрее чем потребление памяти и load average соответственно. Результат уже знакомый - активный свопинг заканчивающийся нокаутом сендмайла. Фак, крутим конфиги: MaxDaemonChildren=8, тестируем: вуаля=). Свопинг был, но не долгий и достатовно неглубокий, а значит на производительность системы мало влияющий.

Собственно говоря, как мне кажется, данное решение проблемы не является сто процентов правильным и грамотным. Хотелось бы услышать мнение человека более опытного и искушенного в данном вопросе.


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.