Перейти к содержимому

Kworker что за процесс linux

  • автор:

Что за процесс kworker в Linux

Иногда, просматривая список процессов с помощью утилиты top, htop или ps вы можете найти там процесс kworker. Этот процесс может занимать очень много ресурсов процессора и памяти, но просто убить вы его не сможете, этого не позволит система. В сегодняшней статье мы разберемся что за процесс kworker Linux, зачем он нужен, а также как справится с высоким потреблением ресурсов этим процессом.

Дело в том, что kworker — это процесс, который объединяет все процессы, выполняющиеся в ядре Linux. Высокая загрузка процессора этим процессом означает, что ядро делает какую-либо работу.

Что за процесс kworker в Linux

Kworker отвечает за все операции, которые выполняются на уровне ядра. Это различные таймеры, прерывания, операции ввода/вывода и так далее. Таких процессов может быть несколько для нескольких ядер процессора. Например: kworker:0, kworker:1 и так далее. Посмотреть какие процессы есть сейчас и сколько они потребляют ресурсов можно с помощью top, которую надо запустить от имени суперпользователя:

Или с помощью утилиты ps:

sudo ps aux | grep kworker

Здесь видно количество процессов и насколько kworker грузит процессор. Обычно этот процесс не связан напрямую с системными программами. Высокое потребление ресурсов могут вызвать определенные модули ядра или программы, которые заставляют ядро делать ту или иную работу. Если надо снизить нагрузку, нужно просто попросить ядро больше не делать ту работу, которую оно делает. Для этого сначала надо понять что оно делает.

Для решения этой задачи можно использовать утилиту perf. Для того чтобы установить утилиту надо знать версию ядра:

Теперь установите пакеты с инструментами для ядра этой версии:

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 можно попробовать обновить ядро, удалить лишние программы, отключить неиспользуемое оборудование и перезагрузить компьютер.

kworker/0:x сильная загрузка CPU

Здравствуйте, система тормозит. Посмотрел список процессов, увидел аномальную загрузку CPU процессом kworker/0:x(x — цифра 0, 2 т.е бывают различные). Сейчас перешел на Gentoo, но с Ubuntu была схожая ситуация.

Вот строчка из top:

PID USER PR NI VIRT RES SHR S %CPU %MEM COMMAND 4860 root 20 0 0 0 0 R 77.2 0.0 kworker/0:0 

Данное событие совпадает с перегревом процессора(как я понял из лога, не могу скопировать, приведу примерно):

CPU0: Core temperature above threshold, cpu clock throttled (total events = 114005) CPU0: Package temperature above threshold, cpu clock throttled (total events = 114164) . CPU2: Package temperature/speed normal . mce: [Hardware Error]: Machine check events logger 

Кто-то сталкивался с подобным? Или как можно выяснить причины подобного?

UPD: sensors показывют следующее

Physical id 0: +70.0C (hight = +80.0C, crit = +85.0C) Core 0: +69.0C (hight = +80.0C, crit = +85.0C) Core 1: +65.0C (hight = +80.0C, crit = +85.0C) 

Что такое процесс kworker?

введите сюда описание изображения

Объясните пожалуйста простыми словами, для чего нужен процесс kworker в Linux? Какую он выполняет работу? Что означают цифры [kworker/n:n] ?

Отслеживать

задан 25 янв 2020 в 10:26

user290664 user290664

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

kworker — подсистема ядра создающая рабочие очереди в основном использующиеся как обработчики аппаратных прерываний. Цифры — номер ядра процессора и номер потока. Подробнее о нутрянке этой подсистемы можно почитать в официальной документации Concurrency Managed Workqueue (cmwq) и Reducing OS jitter due to per-cpu kthreads.

Отслеживать

ответ дан 25 янв 2020 в 11:38

1,136 7 7 серебряных знаков 16 16 бронзовых знаков

Kworker, what is it and why is it hogging so much CPU?

I recently upgraded to the Kubuntu Natty Beta 1 and I’ve been having a lot of issues with the process kworker. At moments it uses almost half my CPU. Also, strangely enough it seems to affect my USB ports; whenever I plug in an USB drive, the process kworker goes into hyperdrive, leaving me unable to work. I have thought about filing a bug but since I haven’t even found any reasonable explanation on what kworker is I figured I should find out first.

383 5 5 silver badges 12 12 bronze badges
asked Apr 5, 2011 at 13:57
7,037 6 6 gold badges 22 22 silver badges 18 18 bronze badges

Strange, kworker is running and contributing to the wakeups by 10% but I have no Kubuntu programs installed. Alos Nepomuk isnt installed.

Jun 9, 2011 at 21:16

from the response of afrazier i think now that it has something to do with the kernel (so the k in kworker is for kernel). so that is why you would also have kworker running on your Ubuntu machine.

Jun 11, 2011 at 7:12

This answer may also be helpful for finding out what a kworker is doing: unix.stackexchange.com/questions/22851/…

Feb 19, 2013 at 4:08
You shouldn’t have taken that last OS update. If you’re lucky, the next one will fix it.
Feb 20, 2017 at 6:44
I have a Dell T40 and the following solution worked for me: askubuntu.com/questions/1044872/…
Dec 7, 2020 at 1:35

6 Answers 6

«kworker» is a placeholder process for kernel worker threads, which perform most of the actual processing for the kernel, especially in cases where there are interrupts, timers, I/O, etc. These typically correspond to the vast majority of any allocated «system» time to running processes. It is not something that can be safely removed from the system in any way, and is completely unrelated to nepomuk or KDE (except in that these programs may make system calls, which may require the kernel to do something).

There were some reports of excessive kworker activity for relatively idle systems starting during 2.6.36 development (example discussion), and wide reports of confusion and problems with 2.6.38 (although many of these reports include the word «Natty», so I presume these people not to have used any kernel between 2.6.35 (distributed in Ubuntu 10.10) and 2.6.38 (distributed in Ubuntu 11.04).

I’ve found many reports of something that «fixed» this for one or another user. Most «fixes» seem to be related to updates of the kernel of various sorts. Where the update can be tracked to a specific issue, it seems to often be some driver or kernel service that has been patched to not misbehave: I have the impression that there are a very large number of things in the kernel that can cause a behaviour which is observed as excessive kworker usage.

If you find the system unusable due to excessive kworker activity, I would recommend trying to do fewer things. If you think you’re not doing anything, try shutting down long-running services or timers (RSS readers, mail readers, file indexers, activity trackers, etc.). If this doesn’t work, try restarting. If your system allows you to enable or disable hardware in a pre-boot environment, try turning off hardware you aren’t using. If it happens on every restart before you do anything, you could try uninstalling things, but at this point you’ll want to be running syscall profiling tools to track down specific applications that seem to be causing this overload.

It is to be hoped that your specific system will stop expressing this behaviour with a future kernel upgrade (and many of the most common causes of this have been solved).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *