Назад | Перейти на главную страницу

Высокая загрузка ЦП MySQL после DDOS-атаки

Мой сервер подвергся серьезным атакам в течение последних 5 часов, и мне удалось защитить их с помощью брандмауэра Cloudflare. Единственная проблема заключается в том, что загрузка ЦП по-прежнему выполняется с высокой загрузкой ЦП (варьируется от 300 до 500%) с 33,2 ГБ виртуальной памяти (информация, полученная с помощью htop).

Как мне вернуть все в норму? Что мне нужно сделать? Я попытался перезапустить сервер, apache и mysql, но он все еще остается высоким.

может просто перезагрузить всю вм ..

вещи, которые вы могли проверить раньше:

  • память заполнена и система уже находится в режиме подкачки ( free -m ), вы можете попробовать сбросить кеши sysctl -w vm.drop_caches=3 , а затем попробуйте понизить swappines или даже swapoff -a , поскольку после того, как система находится в режиме подкачки, возникает высокая нагрузка на диск, и все ваши задержки увеличиваются
  • проверьте, есть ли у кого-то еще доступ к вашему сайту (например, эксплойты, удаленный код, sql-инъекция)
  • у вас все еще может быть много открытых TCP-соединений, попробуйте Резак
  • если таблицы базы данных сильно фрагментированы или слишком велики, вы можете исследовать с помощью mytop
  • если резак / перезагрузка / перезагрузка не помогает, попробуйте изучить медленные журналы mysql, если что-то снижает вашу производительность

Наиболее вероятное объяснение заключается в том, что DDoS привел к тому, что некоторые из таблиц значительно выросли в результате DoS. Проверьте размеры своей таблицы на предмет неожиданного большого увеличения с момента создания последней резервной копии.

Вероятно, произошло то, что у вас были плохо написанные запросы, работающие с этими таблицами и выполняющие полное сканирование таблиц или что-то подобное неэффективное. По мере того, как эти таблицы становились большими, производительность этих плохо написанных запросов падала. Установите mytop и посмотрите, какие запросы выполняются и съедают все ресурсы ЦП - скорее всего, только 1 или 2 отображаются повторно. Исправьте их или посмотрите, какие таблицы они используют, и сократите данные в таблицах, и вы должны вернуться к нормальной работе.

Надеюсь, это поможет и сэкономит вам затраты на работу. ;-)

Спустя пару изнурительных дней я выяснил, в чем проблема.

DDOS фактически вызвала создание сотен тысяч сессий на /storage/framework/sessions (с использованием файлового драйвера), поэтому при запуске сборщика мусора сеанса он проверял каждый файл.

Я решил эту проблему, изменив срок действия сеанса на 1 час (я установил его на 24 часа).