linux-labs

← Практика

Процесс съедает весь CPU

Сломай-почини · Лёгкое · 15 мин · 120 баллов

Процесс съедает весь CPU

Сервер заметно тормозит: load average высокий, отклик вялый. Какой-то процесс «зациклился» и жжёт процессор на 100%. Нужно найти его и укротить, не задев полезные службы.

Задача

Сделай так, чтобы:

  1. процесс-пожиратель CPU был найден и остановлен (его нагрузка устранена);
  2. загрузка CPU и load average вернулись к норме;
  3. полезные службы продолжали работать — без «выключим всё на всякий случай».

Подсказки по подходу

  • Кто грузит CPU: top (или htop), сортировка по %CPU; разово — ps aux --sort=-%cpu | head.
  • Запомни PID и проверь, что это: ps -o pid,ppid,cmd -p <PID> — команда, родитель, не системная ли служба.
  • Останавливай по PID: kill <PID> (при упорстве — kill -9); если это служба — лучше systemctl stop.
  • Проверяй результат по кнопке «Проверить».

Всё нужное уже установлено. Интернет на машине отсутствует — и не понадобится.

Подсказки

Подсказка 1

Открой top и посмотри верх по %CPU — там будет процесс с ~100%. Запиши его PID и имя. Альтернатива без интерактива: ps aux --sort=-%cpu | head.

Подсказка 2

Убедись, что это «пожиратель», а не нужная служба: ps -o pid,ppid,cmd -p <PID> — посмотри, кто его породил и что за команда.

Подсказка 3

Останови его: kill <PID> (если не реагирует — kill -9 <PID>). Если процесс принадлежит службе — sudo systemctl stop <unit>. Проверь, что нагрузка спала: uptime (load average) и top.

Поднимет вашу личную эфемерную Linux-ВМ для задания — обычно пара секунд. После работы её можно остановить.