Вопрос или проблема
У меня есть настольный компьютер (Intel i4770) с Oracle Linux 7.9 и ядром 4.1.12-61. Обычно я держу его выключенным и включаю только в редких случаях, когда нужно что-то протестировать. Месяца два назад я его включил и заметил, что вентиляторы работают на максимальной скорости – я проверил top и увидел, что setroubleshoot загружен на 100%, поэтому я убил процесс. Процесс продолжал возвращаться, и я снова его убивал, но в конечном итоге это сильно не влияло, потому что тестирование было завершено, и я снова выключил компьютер. (Да, я всегда правильно его гашу.)
Теперь, пытаясь выяснить причину проблемы, setroubleshoot больше не показывает 100% в top. На самом деле, ничего даже близко к 100%. Запустив htop, я могу получить детали о процессорах, и 4 из 8 ядер постоянно загружены на 100%. С момента, как компьютер позволяет мне войти, и до того, как я его выключаю. Но в списке процессов нет ничего даже выше 5.2%.
Когда я запускаю perf на каждом ядре, я вижу, что ядра с нулевого по третье загружены на 100% ядром.
На рабочем столе этого компьютера я заметил кучу ошибок SELinux. Все они, похоже, указывают на то, что была попытка выполнить что-то, что не должно было быть разрешено.
И просто чтобы подтвердить, что htop правильно отображал информацию, вот отчет из Системного Монитора.
Загрузка на предыдущую версию ядра не помогла. И загрузка в “спасательное” ядро тоже не пришла на помощь.
Я пытался обновить ядро, но это не помогло. Я провел обновление программного обеспечения, и это тоже не помогло. Обратите внимание, что я не выполнял никаких обновлений и не устанавливал новое программное обеспечение непосредственно перед началом этой проблемы. Эта установка была стабильной в течение многих лет, когда мне это было нужно.
Я также пытался повторно установить ту же операционную систему на новый внешний диск. Это сработало. На этом диске не было никаких проблем. Но когда я загружаюсь с этого диска и затем выбираю ядро, которое находится на основном диске, проблема возвращается. Это все, похоже, подтверждает, что дело не в ядре, а в основном диске системы есть какая-то проблема.
Я не знаю, как дальше отлаживать. Я не могу понять, что изменилось и почему, поэтому не знаю, с чего начать это исправлять. Буду признателен за любую помощь о том, где искать и что проверять!
Ответ или решение
Анализ проблемы: 100% загрузка ЦП на 4 из 8 ядер в Oracle Linux
Введение
Вы столкнулись с серьезной неполадкой, когда 4 из 8 ядер вашего процессора Intel i4770 на системе Oracle Linux 7.9 используют 100% ресурсов. В данном случае очень важно провести детальный анализ ситуации, включая состояние системы, возможные проблемы с SELinux, а также возможные ошибки в вашем программном обеспечении.
Описание проблемы
При запуске компьютера, работающего на Oracle Linux 7.9 с ядром 4.1.12-61, вы заметили, что вентиляторы работают на максимуме, а процесс setroubleshoot
использует 100% ресурсов. Несмотря на последующую остановку данного процесса, вы обнаружили, что проблема осталась, и в htop
вы видите, что 4 ядра загружены на 100%, а другие процессы не показывают такой высокой загрузки.
Запуск утилиты perf
подтвердил, что ядра 0-3 загружены на 100% в режиме kernel. Это указывает на возможные проблемы с обработкой прерываний или зависанием в kernel-моде. Кроме того, сообщения об ошибках SELinux могут указывать на неправильные настройки безопасности или нарушения политик безопасности.
Возможные причины и рекомендации
-
Ошибки в SELinux:
- Вы упомянули наличие ошибок SELinux. Вам следует проверить текущие настройки SELinux с помощью команды
sestatus
. Если SELinux находится в режиме "Enforcing", вы можете временно переключить его в режим "Permissive", чтобы исключить его влияние на систему. Это можно сделать с помощью команды:setenforce 0
- После изменения режима проверьте, не исчезла ли проблема с загрузкой ЦП.
- Вы упомянули наличие ошибок SELinux. Вам следует проверить текущие настройки SELinux с помощью команды
-
Проблемы с драйверами или оборудованием:
- Нередко 100% загрузка ядер может быть связана с некорректно работающими драйверами или аппаратными конфликтами. Проверьте системные логи с помощью
dmesg
иjournalctl -xe
, чтобы выявить ошибочные зарегистрированные сообщения от оборудования.
- Нередко 100% загрузка ядер может быть связана с некорректно работающими драйверами или аппаратными конфликтами. Проверьте системные логи с помощью
-
Проверка работы сервисов:
- Возможно, один или несколько системных сервисов создают избыточную нагрузку. Используйте команду
systemctl list-units --type=service
для анализа активных сервисов. Вы можете временно остановить ненужные сервисы и снова проверить нагрузку CPU.
- Возможно, один или несколько системных сервисов создают избыточную нагрузку. Используйте команду
-
Использование утилиты
mpstat
:- Для более детального понимания загрузки ЦП вы можете использовать команду
mpstat -P ALL 1
. Это даст вам возможность увидеть распределение загрузки по каждому из ядер в реальном времени и, возможно, определить, какие процессы взаимодействуют с определенными ядрами.
- Для более детального понимания загрузки ЦП вы можете использовать команду
-
Запуск в безопасном режиме (rescue mode):
- Попытайтесь загрузиться в безопасном режиме и проверьте, повторяется ли проблема. Иногда проблемы возникают из-за пользовательских конфигураций, и безопасный режим может помочь исключить это.
-
Проверка системы на наличие вредоносного ПО:
- Хотя ваша система была стабильной, обдумайте возможность выполнения проверки на вредоносное программное обеспечение. Используйте инструменты, такие как
rkhunter
илиchkrootkit
, чтобы выявить потенциальные угрозы.
- Хотя ваша система была стабильной, обдумайте возможность выполнения проверки на вредоносное программное обеспечение. Используйте инструменты, такие как
-
Аппаратная диагностика:
- Поскольку проблема возникает только на основном диске, возможно, стоит провести диагностику самого жесткого диска. Используйте такие утилиты, как
smartctl
, чтобы проверить состояние вашего диска на наличие ошибок и секторов, ожидающих замены.
- Поскольку проблема возникает только на основном диске, возможно, стоит провести диагностику самого жесткого диска. Используйте такие утилиты, как
Заключение
Проблема с 100% загрузкой ЦП на 4 ядрах вашего процессора в Oracle Linux может иметь несколько причин. Рекомендую следовать шагам, описанным выше, проверяя каждую из возможных причин. Если проблема сохраняется, возможно, стоит рассмотреть вариант полного резервного копирования данных и переустановки системы, поскольку текущее состояние может быть результатом поврежденных конфигураций или системных файлов.