Согласованный, это был apache2, который был неудачным процессом, но это был преступник для меня прежде. Обычно, особенно с жемчугом, php, или mod_python будет продолжать выделять поршень для некоторого веб-приложения. Поскольку различные клиенты поражают различные апачские процессы, они будут продолжать увеличиваться в использовании памяти.
Если Ваш трафик просто достаточно интенсивен для поддержания апачских процессов, можно закончить с 256 апачскими выполнениями процессов. Но, это не должен быть в какой-либо степени этот предел, у меня был oom-уничтожитель, дают мне плохой день с 30 апачскими процессами, использующими 250-300MB, или таранят каждого.
Увеличение подкачки купит Вас немного времени, чтобы войти в поле и видеть то, что продолжается, но Вас нужно предупредить так, чтобы Вы видели, какой процесс съедает поршень, проверьте, если это является действительно апачским.
Используйте свободный в задании крона или кактусах и snmp с порогами. Со свободным необходимо будет наблюдать буферы и свободный поршень, составить их и предупредить на некотором нижнем пороге.
Другая вещь, если это является апачским, могла бы состоять в том, чтобы привести Ваш MaxClients, это может иметь высокое количество по умолчанию. Или, приведите MaxRequestsPerChild к числу достаточно низко для уничтожения процессов время от времени. Это - только лейкопластырь, но он мог помочь позволить Вам хромать вперед достаточно долго для понимания проблемы.
Просто мой удар в воздухе Scott M.
Как вы знаете, поток пакетов «попытка открыть порт» должен работать следующим образом:
Версия с «закрытым портом» проста:
И если дальний конец не возвращает пакеты RST, что является чрезвычайно распространенной конфигурацией межсетевого экрана:
И под чрезвычайно распространенным я подразумеваю чрезвычайно распространенное . Все TCP-стеки должны обрабатывать этот случай, поскольку он настолько распространен.
Вариант, который кто-то предложил:
«Атака», которую он ловко обнаружил, - это атака SYN Flood , известная с начала 1990-х годов. Благодаря брандмауэрам, блокирующим пакеты RST, эти серверы не будут знать, что нужно закрыть соединение, поэтому они действительно будут повторно передавать пакет SYN / ACK на основе обычного времени повторной попытки TCP. Тем не менее, все современные TCP-стеки включают некоторую настраиваемую защиту от SYN-флуда, встроенную в них.
Это все еще в некоторой степени эффективный метод атаки, хотя основной вред, который он наносит, заключается в перегрузке устройства защиты периметра слишком большим количеством пакетов. следить за. SYN / ACK без SYN следует очень дешево отбросить, но если их будет достаточно, это может привести к перегрузке брандмауэра.
Syn Cookies эффективно останавливают эту атаку. Сервер отвечает SYN / ACK и забывает об этом. Если ACK получен, он повторно инициализирует поток на основе порядкового номера TCP. В Linux это можно включить, добавив:
net.ipv4.tcp_syncookies = 1
в /etc/sysctl.conf
, но, когда его забивают более 10 тыс. Машин, я думаю, сервер все равно будет отключен.