kworker грузит процессор? Разбираемся с загадочным процессом в Linux
Ваш процессор на 100%, а система вдруг начала тормозить? Виноват может быть не какой-то знакомый софт, а таинственный процесс под названием kworker. Вы его видели в системном мониторе — он скрывается среди других задач и может пожирать драгоценные ресурсы.
Это не вирус и не ошибка, а важнейший рабочий ядра вашей системы. Kworker — это внутренний помощник Linux, который выполняет всю «черновую работу» на самом глубоком уровне. Высокая нагрузка от него — это крик о помощи: ядро усердно трудится над какой-то задачей, и часто эта задача связана с неисправным оборудованием или глючным драйвером.
Просто «убить» его не получится — система вас не пустит. Но и мириться с тормозами — не вариант. Как же выяснить, что именно заставляет kworker так активно работать? В этом материале мы не просто объясним, что это за процесс, а дадим пошаговый план действий.
Вы научитесь использовать профессиональные инструменты, такие как `perf`, чтобы заглянуть внутрь работы ядра и определить виновника проблем. Мы покажем, как анализировать отчеты и интерпретировать их данные. Вы узнаете, какие конкретные шаги можно предпринять: от обновления ядра и отключения ненужного оборудования до поиска проблемных драйверов.
Хватит гадать и перезагружать компьютер в надежде на чудо. Возьмите ситуацию под контроль, найдите корень проблемы и верните своей системе былую скорость. Готовы раскрыть тайну kworker и устранить тормоза раз и навсегда? Тогда начинаем!
Иногда, просматривая список процессов с помощью утилиты top, htop или ps вы можете найти там процесс kworker. Этот процесс может занимать очень много ресурсов процессора и памяти, но просто убить вы его не сможете, этого не позволит система. В сегодняшней статье мы разберемся что за процесс kworker Linux, зачем он нужен, а также как справится с высоким потреблением ресурсов этим процессом.
Дело в том, что kworker - это процесс, который объединяет все процессы, выполняющиеся в ядре Linux. Высокая загрузка процессора этим процессом означает, что ядро делает какую-либо работу.
Что за процесс kworker в Linux
Kworker отвечает за все операции, которые выполняются на уровне ядра. Это различные таймеры, прерывания, операции ввода/вывода и так далее. Таких процессов может быть несколько для нескольких ядер процессора. Например: kworker:0, kworker:1 и так далее. Посмотреть какие процессы есть сейчас и сколько они потребляют ресурсов можно с помощью top, которую надо запустить от имени суперпользователя:
sudo top
Или с помощью утилиты ps:
sudo ps aux | grep kworker
Здесь видно количество процессов и насколько kworker грузит процессор. Обычно этот процесс не связан напрямую с системными программами. Высокое потребление ресурсов могут вызвать определенные модули ядра или программы, которые заставляют ядро делать ту или иную работу. Если надо снизить нагрузку, нужно просто попросить ядро больше не делать ту работу, которую оно делает. Для этого сначала надо понять что оно делает.
Для решения этой задачи можно использовать утилиту perf. Для того чтобы установить утилиту надо знать версию ядра:
uname -r
Теперь установите пакеты с инструментами для ядра этой версии:
sudo apt install linux-tools-common linux-tools-5.4.0-29-generic
Сначала запишите 10 секунд логов работы ядра. Для этого выполните:
sudo perf record -g -a sleep 10
Осталось открыть отчёт и узнать что именно перегружает систему:
sudo perf report
Здесь первые две колонки указывают процент событий данного типа по отношению к общему количеству событий. Третья колонка указывает процесс, для которого были собраны события, четвертая колонка - это ELF файл события. Если событие было в библиотеке, то здесь будет отображён файл библиотеки. С помощью последней колонки можно определить где произошло событие - в пространстве ядра [k] или в пространстве пользователя [.]. С помощью этой информации вы сможете примерно определить какая часть ядра создает нагрузку отключить ненужную функциональность или исправить ошибки.
Выводы
Теперь вы знаете что такое kworker и что с ним делать. Также при высоком потреблении ресурсов процессом kworker можно попробовать обновить ядро, удалить лишние программы, отключить неиспользуемое оборудование и перезагрузить компьютер.