Мой сервер подвергся серьезным атакам в течение последних 5 часов, и мне удалось защитить их с помощью брандмауэра Cloudflare. Единственная проблема заключается в том, что загрузка ЦП по-прежнему выполняется с высокой загрузкой ЦП (варьируется от 300 до 500%) с 33,2 ГБ виртуальной памяти (информация, полученная с помощью htop
).
Как мне вернуть все в норму? Что мне нужно сделать? Я попытался перезапустить сервер, apache и mysql, но он все еще остается высоким.
может просто перезагрузить всю вм ..
вещи, которые вы могли проверить раньше:
free -m
), вы можете попробовать сбросить кеши sysctl -w vm.drop_caches=3
, а затем попробуйте понизить swappines или даже swapoff -a
, поскольку после того, как система находится в режиме подкачки, возникает высокая нагрузка на диск, и все ваши задержки увеличиваютсяmytop
Наиболее вероятное объяснение заключается в том, что DDoS привел к тому, что некоторые из таблиц значительно выросли в результате DoS. Проверьте размеры своей таблицы на предмет неожиданного большого увеличения с момента создания последней резервной копии.
Вероятно, произошло то, что у вас были плохо написанные запросы, работающие с этими таблицами и выполняющие полное сканирование таблиц или что-то подобное неэффективное. По мере того, как эти таблицы становились большими, производительность этих плохо написанных запросов падала. Установите mytop и посмотрите, какие запросы выполняются и съедают все ресурсы ЦП - скорее всего, только 1 или 2 отображаются повторно. Исправьте их или посмотрите, какие таблицы они используют, и сократите данные в таблицах, и вы должны вернуться к нормальной работе.
Надеюсь, это поможет и сэкономит вам затраты на работу. ;-)
Спустя пару изнурительных дней я выяснил, в чем проблема.
DDOS фактически вызвала создание сотен тысяч сессий на /storage/framework/sessions
(с использованием файлового драйвера), поэтому при запуске сборщика мусора сеанса он проверял каждый файл.
Я решил эту проблему, изменив срок действия сеанса на 1 час (я установил его на 24 часа).