У меня есть машина Debian 7 x64, работающая с Digital Ocean, которая каждые 30 минут использует 100% процессор в течение примерно 1 минуты. Пару дней назад он оставался там на пару часов, поэтому сервер наконец сломался, и мне пришлось восстановить свои базы данных Mysql. Сервер представляет собой чистый веб-сервер, на котором работают apache2 и Mysql.
Я попытался отследить, какие процессы используют процессор, но безуспешно. Скрипт, который я использовал:
#!/bin/sh
while true; do ps -A -eo pcpu,pid,user,args | sort -k 1 -r | head -3 >>
proclog.txt; echo "\n" >> proclog.txt; sleep 2; done
Я также следил за htop, пока это происходило, но использование процессора топ-процессами не составило ~ 15%, хотя измеритель процессора htop показывал постоянные 100%. htop был настроен для отображения всех пользовательских процессов, пользовательских потоков и потоков ядра.
Редактировать: Остановив Apache2 и Mysql до ожидаемого 100% использования, я могу сказать, что оба они не несут ответственности за это. Все равно 100% использование произошло.
Вот как выглядел график в последние часы:
Я полагаю, ваша машина - это ВМ?
Затем вы можете увидеть эти пики из-за аппаратных ресурсов, на которых работает ваша машина.
Я предполагаю, что это пик типа syswait или iowait, когда ваша машина должна ждать, пока хост виртуализации завершит свою задачу (и). В этом случае вы ничего не увидите в htop / atop / ..., поскольку ваша машина на самом деле ничего не делает.
Поскольку это происходит на такой регулярной основе, я бы предложил какую-то задачу cron, которая выполняет много операций ввода-вывода на хосте, на котором работает ваша машина.
Возможно, вы установите / используете поверх, который также регистрирует системную статистику для последующего анализа. Удачи.