что такое kworker в ubuntu
Kworker, что это такое и почему он так сильно загружает процессор?
Были некоторые сообщения о чрезмерной активности kworker для относительно бездействующих систем, начиная с разработки 2.6.36 ( пример обсуждения ), и широкие сообщения о путанице и проблемах с 2.6.38 (хотя многие из этих отчетов включают слово «Natty», поэтому я предполагаю, эти люди не использовали никакого ядра между 2.6.35 (распространяется в Ubuntu 10.10) и 2.6.38 (распространяется в Ubuntu 11.04).
Я нашел много сообщений о том, что «исправило» это для того или иного пользователя. Большинство «исправлений», по-видимому, связаны с обновлениями ядра различного рода. Там, где обновление можно отследить до определенной проблемы, часто оказывается, что какой-то драйвер или служба ядра были исправлены, чтобы не вести себя неправильно: у меня сложилось впечатление, что в ядре есть очень много вещей, которые могут вызвать поведение что наблюдается как чрезмерное использование kworker.
Если вы обнаружите, что система непригодна для использования из-за чрезмерной активности kworker, я бы порекомендовал попробовать сделать меньше вещей. Если вы думаете, что ничего не делаете, попробуйте отключить долго работающие службы или таймеры (устройства чтения RSS, средства чтения почты, индексаторы файлов, средства отслеживания активности и т. Д.). Если это не работает, попробуйте перезапустить. Если ваша система позволяет вам включать или отключать оборудование в предзагрузочной среде, попробуйте отключить оборудование, которое вы не используете. Если это происходит при каждом перезапуске, прежде чем что-то делать, вы можете попытаться что-то удалить, но на этом этапе вам понадобятся инструменты профилирования syscall для отслеживания определенных приложений, которые, по-видимому, вызывают эту перегрузку.
Следует надеяться, что ваша конкретная система перестанет выражать это поведение при будущем обновлении ядра (и многие из наиболее распространенных причин этого были устранены).
Что такое kworker? kworker означает процесс ядра Linux, выполняющий «работу» (обработка системных вызовов). У вас может быть несколько из них в вашем списке процессов: kworker/0:1 это на вашем первом ядре процессора, kworker/1:1 на вашем втором и т. Д.
Пример: e1000e. В моем случае я обнаружил такой след почти каждый раз:
Это намекало мне на проблему в e1000e модуле карты Ethernet, и, действительно, sudo rmmod e1000e высокая загрузка процессора сразу же исчезла [ ошибка e1000e # 26 ].
Что за процесс 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 секунд логов работы ядра. Для этого выполните:
Осталось открыть отчёт и узнать что именно перегружает систему:
Выводы
Теперь вы знаете что такое kworker и что с ним делать. Также при высоком потреблении ресурсов процессом kworker можно попробовать обновить ядро, удалить лишние программы, отключить неиспользуемое оборудование и перезагрузить компьютер.
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.
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).
Kworker, что это такое и почему он забивает так много процессора?
6 ответов
Я нашел много сообщений о том, что «исправлено» для того или иного пользователя. Большинство «исправлений», похоже, связаны с обновлениями ядра различного рода. Если обновление можно отследить по конкретной проблеме, часто кажется, что некоторые драйверы или службы ядра были исправлены, чтобы не ошибиться: у меня сложилось впечатление, что в ядре очень много вещей, которые могут вызвать поведение который наблюдается как чрезмерное использование kworker.
Если вы обнаружите, что система недоступна из-за чрезмерной активности kworker, я бы рекомендовал попробовать сделать меньше. Если вы считаете, что ничего не делаете, попробуйте отключить долговременные службы или таймеры (RSS-ридеры, почтовые программы, файловые индексы, отслеживания активности и т. Д.). Если это не работает, попробуйте перезапустить. Если ваша система позволяет включать или отключать оборудование в среде предварительной загрузки, попробуйте отключить оборудование, которое вы не используете. Если это произойдет при каждом перезапуске, прежде чем что-либо сделать, вы можете попробовать удалить все, но в этот момент вы захотите использовать инструменты профилирования syscall для отслеживания определенных приложений, которые, как представляется, вызывают эту перегрузку.
Следует надеяться, что ваша конкретная система перестанет выражать это поведение с будущим обновлением ядра (и многие из наиболее распространенных причин этого были решены).
Пример: e1000e. В моем случае я нашел такую обратную линию почти каждый раз:
Запишите около 10 секунд обратных отображений на всех ваших процессорах:
Проанализируйте свою запись:
Просто чтобы все знали. Я столкнулся с этой проблемой, установил perf (это отличный инструмент), он указал на блокировку спина и XFS. Это указывало на NFS. Тогда я понял, что один из моих монстров был вне космоса. Освобождение пространства привело к тому, что CPU kworker упал до 0.
По-видимому, это может быть симптомом исчерпания пространства на занятом сервере NFS!
Недавно я установил Ubuntu Natty на внешний диск usb wd. Когда я начинаю на своем рабочем столе, которому около двух лет, все работает как шарм. Когда я запускаю свой новый ноутбук (MSI gt680r system), он замедляется после того, как я просыпаюсь с компьютера из сна или если я подключаю другой USB-диск.
Процессы Kworker принимают все больше и больше CPU, и мышь время от времени зависает.
Я читал несколько решений на разных форумах, которые не работали.
Я вошел в BIOS моего ноутбука, где был:
, и с тех пор он больше не замерзает на natty на моем ноутбуке.
Я бы включил функцию обратной связи, если и когда проблема будет исправлена.
Kworker, что это такое и почему он так сильно загружает процессор?
Я недавно обновился до Kubuntu Natty Beta 1, и у меня было много проблем с процессом Kworker. Иногда он использует почти половину моего процессора. Кроме того, как ни странно, это влияет на мои USB-порты; всякий раз, когда я подключаю USB-накопитель, процесс Kworker переходит в гипердвигатель, в результате чего я не могу работать.
Я думал о том, чтобы зарегистрировать ошибку, но поскольку я даже не нашел разумного объяснения того, что Kworker Я решил, что должен узнать в первую очередь.
Были некоторые сообщения о чрезмерной активности kworker для относительно незанятых систем, начиная с разработки 2.6.36 (обсуждение примеров), и многочисленные сообщения о путанице и проблемах с 2.6.38 (хотя многие из этих отчетов включают слово «Natty», поэтому я предполагаю эти люди не использовали ядро между 2.6.35 (распространяется в Ubuntu 10.10) и 2.6.38 (распространяется в Ubuntu 11.04).
Я нашел много сообщений о том, что «исправляло» это для того или иного пользователя. Большинство «исправлений», похоже, связано с обновлениями ядра разного рода. Если обновление можно отследить до определенной проблемы, часто кажется, что это какой-то драйвер или служба ядра, которые были исправлены, чтобы не вести себя неправильно: у меня сложилось впечатление, что в ядре есть очень большое количество вещей, которые могут вызывать поведение что наблюдается как чрезмерное использование kworker.
Если вы обнаружите, что система непригодна для использования из-за чрезмерной активности kworker, я бы рекомендовал попытаться сделать меньше вещей. Если вы думаете, что ничего не делаете, попробуйте закрыть давно работающие службы или таймеры (программы чтения RSS, программы чтения почты, индексаторы файлов, средства отслеживания активности и т. Д.). Если это не сработает, попробуйте перезапустить. Если ваша система позволяет вам включать или отключать оборудование в предзагрузочной среде, попробуйте отключить оборудование, которое вы не используете. Если это происходит при каждом перезапуске, прежде чем что-либо делать, вы можете попробовать удалить что-то, но на этом этапе вы захотите запустить инструменты профилирования системных вызовов, чтобы отслеживать определенные приложения, которые, похоже, вызывают эту перегрузку.
Остается надеяться, что ваша конкретная система перестанет проявлять такое поведение с будущим обновлением ядра (и многие из наиболее распространенных причин этого были решены).
Пример: e1000e. В моем случае я почти каждый раз находил такую обратную трассировку:
Это намекало мне на проблему в e1000e Модуль карты Ethernet, и действительно sudo rmmod e1000e немедленно устраняет высокую загрузку процессора [ошибка e1000e № 26].
(Второй пакет должен соответствовать версии вашего ядра. Вы можете сначала установить только linux-tools-common и позвони perf чтобы он сказал вам, какой пакет ему нужен.)
Запишите около 10 секунд трассировки на всех ваших процессорах:
Проанализируйте свою запись:
Просто чтобы все знали. Я столкнулся с этой проблемой, установил perf (отличный инструмент), он указал на блокировку вращения и XFS. Это указывало на NFS. Потом я понял, что на одном из моих верховых животных нет места. Освобождение места привело к падению ЦП kworker до 0.
Очевидно, это может быть признаком нехватки места на диске на загруженном сервере NFS!
Процессы Kworker занимают все больше и больше ЦП, и время от времени мышь зависает.
Я прочитал несколько решений на разных форумах, которые не работали.
Зашел в биос своего ноутбука, где было:
и с тех пор он больше не зависает на natty на моем ноутбуке.
Я бы разрешил возврат, если и когда проблема будет исправлена.
Думаю, отключение Непомука может вам помочь: