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

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

  • автор:

Странная активность kworker’а.

После обновления ядра до версии 3.10.7 kworker/1:1 и kworker/1:2 подают признаки активности в простое. Жесткий диск периодически похрустывает. По показаниям itop раз в секунду обращаются к жесткому диску. На версии 3.8.13 активности в простое нет.
Как остановить это дискоубиение?

Kill -9 pid а так?

Покажи сюда вывод ps -o pid

Можно так sleep 10 & ps -o pid или так kill -SIGSTOP PID Потом посмотри $ jobs

kworker никак не убьешь, это ядро.

во время этого кворканья, у тебя случайно один из CPU/ядер не гасит в 100% ?

Знаю, что ядро. Думал что убив его, система в poweroff пойдет.

один из CPU/ядер не гасит в 100% ?

Знаю, что ядро. Думал что убив его, система в poweroff пойдет.

Если смотреть через top или мониторить ps, kworker/1:[1-2] практически неактивен. А в itop постоянно скачет в районе

Какой дистрибутив? Не знаю с чем связана такая активность, смотри на другом ПК с таким же дистром.

создай два файла в /etc/local.d/ с одинаковым содержанием:

/etc/local.d/kworker.start

ребутни машину и протестируй.

какое имеет отношение поведение определенной ревизии ядра на конкретном железе, к тестированию дистрибутива линукса на другом железе? где логика?

Протестировал, активность осталась. А у тебя ядро сейчас 3.10.+? Можешь протестировать *iotop’ом -o?

kworker на любом, ЕМНИП, ядре постоянно практически ежесекундно подает признаки I/O.

Просто с кворкером существует другой известный и как-бы пофикшенный, но всё-таки довольно часто всплываемый баг дёргать CPU без причины, точнее причина тому прерывания, но очевидно это не твой случай.

Ты случайно не путаешь в показаниях iotop’а, т.к. возможно не kworker дёргает ФС, а журнал: процесс [jbd2/sda1-8], например. Просто iotop на питоне и показывает не в реальном времени, т.е. после звука идёт небольшая задержка.

//да, у меня 3.10.9 — kworker тоже каждую секунду в топе иотопа.

3.10.7 — активность за 120 секунд.
3.8.13 — активность за 120 секунд.
Возможно у меня слуховые глюцинации. DISK WRITE и DISK READ у kworker’а 0.00 % следовательно хрустеть винтом он не может? Но зачем нужна эта (возможно лишняя) активность? Надеюсь что это такая «фича» в ядрах 3.10.+ и её можно отключить.

Но зачем нужна эта (возможно лишняя) активность?

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

cpu – Kworker, что это такое и почему он забивает так много процессора?

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] или в пространстве пользователя [.]. С помощью этой информации вы сможете примерно определить какая часть ядра создает нагрузку отключить ненужную функциональность или исправить ошибки.

5 ответов

Что такое kworker? kworker означает, что процесс ядра Linux выполняет «работу» (обработка системных вызовов). У вас может быть несколько из них в списке процессов: kworker/0:1 – тот, что на вашем первом ядре процессора, kworker/1:1 тот, что на вашем втором и т. Д.

Что такое kworker? Чтобы узнать, почему kworker тратит впустую ваш процессор, вы можете создавать обратные трассировки процессора: смотрите загрузку процессора (с помощью top или что-то в этом роде) и в моменты высокой нагрузки через kworker выполните echo l > /proc/sysrq-trigger, чтобы создать обратную трассировку , (На Ubuntu вам нужно войти в систему с помощью sudo -s). Делайте это несколько раз, затем смотрите обратные трассы в конце выхода dmesg. Посмотрите, что часто случается в перепадах CPU, надеюсь, укажет на источник вашей проблемы.

Пример: e1000e. В моем случае я нашел такую ​​обратную линию почти каждый раз:

Call Trace: delay_tsc+0x4a/0x80 __const_udelay+0x2c/0x30 e1000_acquire_swflag_ich8lan+0xa2/0x240 [e1000e] e1000e_read_phy_reg_igp+0x29/0x80 [e1000e] e1000e_phy_has_link_generic+0x85/0x120 [e1000e] e1000_check_for_copper_link_ich8lan+0x48/0x930 [e1000e] e1000e_has_link+0x55/0xd0 [e1000e] e1000_watchdog_task+0x5e/0x960 [e1000e]

Он намекнул мне на проблему в модуле карты Ethernet e1000e, и действительно sudo rmmod e1000e сделал высокую загрузку процессора немедленно уйдите [e1000e bug # 26].

ответ дан tanius 25 May 2018 в 22:15

Почему kworker запускает ваш процессор (продолжение)? В качестве альтернативы моему другому ответу здесь Perf – это более профессиональный способ проанализировать, какие задачи ядра забивают ваш процессор:

Установить perf: sudo apt-get install linux-tools-common linux-tools-3.11.0-15-generic (Второй пакет должен соответствовать вашей версии ядра. Вы можете сначала установить только linux-tools-common и вызвать perf, чтобы он сообщил вам, какой пакет ему нужен.) Запишите около 10 секунд обратных отображений на всех ваших CPU: sudo perf record -g -a sleep 10 Проанализируйте свою запись: sudo perf report (Перейдите к графику вызовов со ←, →, ↑, ↓ и Enter.)

ответ дан Community 25 May 2018 в 22:15

Просто чтобы все знали. Я столкнулся с этой проблемой, установил perf (это отличный инструмент), он указал на блокировку спина и XFS. Это указывало на NFS. Тогда я понял, что один из моих монстров был вне космоса. Освобождение пространства привело к тому, что CPU kworker упал до 0.

Таким образом, очевидно, что это может быть признаком нехватки места на занятом сервере NFS!

ответ дан Erik Aronesty 25 May 2018 в 22:15

Недавно я установил Ubuntu Natty на внешний диск usb wd. Когда я начинаю на своем рабочем столе, которому около двух лет, все работает как шарм. Когда я запускаю свой новый ноутбук (MSI gt680r system), он замедляется после того, как я просыпаю компьютер из сна, или если я подключаю другой USB-диск.

Процессы Kworker принимают все больше CPU, а время от времени зависает.

Я прочитал несколько решений на разных форумах, которые не работали.

Я вошел в BIOS моего ноутбука, где был:

Hand XCHI OFF: EnabledEHCI Hand OFF: disabled

Hand XCHI OFF: disabledEHCI Hand OFF: disabled

, и с тех пор он не работает «Заморозите больше на natty на моем ноутбуке.

Я бы включил функцию обратной связи, если и когда проблема будет исправлена.

ответ дан Nikana Reklawyks 25 May 2018 в 22:15

Я думаю, что отключение Nepomuk может вам помочь:

ответ дан Extender 25 May 2018 в 22:15

Другие вопросы по тегам:

Похожие вопросы:

1 ответ 1

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

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

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

0andriy 30 янв ’20 в 11:41

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

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

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

Ваш ответ

Спасибо за ваш ответ на Stack Overflow на русском!

  • Пожалуйста, убедитесь, что публикуемое сообщение отвечает на поставленный вопрос. Предоставьте как можно больше деталей, расскажите про проведенное исследование!
  • Просьб помощи, уточнений или ответов на темы не относящиеся к вопросу.
  • Ответов основанных на мнениях; приводите аргументы основанные только на реальном опыте.

Также, обратите внимание на заметку в справочном центре о том, как писать ответы.

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

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

kworker/ что за процесс, и можно ли его

kworker/ что за процесс, и можно ли его

kworker/ что за процесс, и можно ли его

kworker/ что за процесс, и можно ли его

И, да: conky я не юзаю, так что эта версия тоже отпадает.

В более древних описаниях проблемы, рекомендуют откатить ядро к 2.х, но у меня оно в два раза старше даже из коробки. Ядро новое я средствами минта устанавливал, могу попробовать установить какое-нибудь более раннее. Вопрос, какое?

Еще где-то у гентушников видел рекомендуют рестартануть acpid. Пробовал (не помню как именно, что бы воспроизвести) – но тоже без результата.

Исходя из того, что в адресной строке присутствует firmware и acpi могу предположить взаимосвязь с недавним сообщением от Chocobo Уязвимость в процессорах Intel (Пост Chocobo #37740), после которого я (в числе прочих рекомендаций) включил в драйверах ранее не задействованный микрокод Intel.
Из нового по этой же теме: http://rus.delfi.lv/techlife/novosti/in . d=49654643
У меня тоже 25% где-то.

Впрочем, после включения/отключения микрокода (сейчас попробовал) – картина не меняется. А до сегодняшнего дня я на этот процесс внимания не обращал и не могу сказать была ли проблема раньше, или она только сейчас появилась. Хотя картина по загрузке процессора сразу после включения компьютера еще дня 3-4 назад была еще совсем другой – были считаные проценты.

[kworker] Одно ядро на 90-97% загружено процессом kworker

Всем пинг! Относительно давно поставил htop для того, чтобы поглядывать на загруженность системы. Но поскольку я его очень редко использовал я почти не замечал ничего. И вот некоторое время спустя я поставил себе Conky и после настройки я увидел полную загруженность одного ядра.

Я просматривал все процессы и не мог найти в чем проблема. Очень долго сидел в гугле и искал решение данного вопроса, но все время упирался вразные решения, которые не давали требуемого результата. Я понимал логику как решить проблему, но не сразу нашел как эту логику реализовать.

Суть проблемы: существут некий процесс под названием kworker , который после запуска системы отжирает одно ядро полность. Быстрый гуглеж дал мне понять, что это не критично и связано с прерываниями (сильно глубоко не было желания разбираться в проблеме).

Решалось это все довольно примитивно. Для начала находим (от рута) виновника вот такой командой:

Там увидим примерно следующее:

Вот на последней строке у меня и есть виновник. У вас вполне вероятно могут быть другие цифры после gpe . Лечить его можно вот такой командой (важно — ОТ РУТА):

После этого вы можете проверить через тот же htop и увидите, съеденное ядро вернулось обратно. Это конечно приятно и не может не радовать, но тут есть один маленький минус — после перезагрузки все снова будет как и раньше и процедуру придется повторять.

Меня это через пару дней выбесило и был реализован простой способ решения данного косяка в автоматическом режиме. Написан скрипт-однострочник:

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).

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

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

Капельница от запоя — облегчение за 15–20 минут