Недавно apache2 начал использовать 100% мощности процессора:top
дает мне
Из других аналогичных тем я взял совет использовать mod_status. Помимо ОГРОМНОГО количества NULL-запросов, он дает:
CPU Usage: u2.16 s1.32 cu0 cs0 - .0835% CPU load
1.2 requests/sec - 17.6 kB/second - 14.6 kB/request
8 requests currently being processed, 42 idle workers
Журналы доступа и ошибок не показывают ничего удивительного или интригующего.
Обратите внимание, что загрузка процессора составляет 0,8%. Другой совет должен был использовать strace
:
root@server:~# strace -p 1956
Process 1956 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>
И остается таким же, по крайней мере, полчаса, без каких-либо дополнительных выходных данных. Перезапуск apache исправил проблему менее чем за секунду. Сервер запускает несколько пользовательских сценариев Python, а также веб-сайт с поддержкой django на apache2 (обновленный), но даже отключает сценарии (или не активирует их в первый раз). место) ничего не изменилось. После того, как я остановил Apache и выключил сервер, включил его через несколько минут и перезапустил все мои службы, загрузка ЦП оставалась низкой в течение нескольких часов, просто для того, чтобы случайно всплыть снова (?)
Статистика процессора DigitalOcean на моем сервере: Вы можете видеть, как загрузка процессора была очень высокой почти полдня, пока я не перезапустил бот - просто оставался стабильным в течение нескольких часов, а затем снова всплывал.
Я в полном недоумении и не знаю, что я мог бы сделать, чтобы выяснить, какая часть моего кода вызывает у меня эти проблемы или является ли причина в самом Apache ...
Поэтому я был бы очень признателен за любые подсказки к вопросам: что еще я могу попытаться сделать? Какие вещи я мог бы не проверить? Это определенно в моем собственном коде? Как вы узнаете, какая часть кода Python вылетает из приложения через бесконечный цикл или что-то подобное?