Я недавно установил RedHat 7.4 на физическом сервере, и на нем работает только Oracle Database 12 C. Я обнаружил, что существует более 200 процессов «kworker», число процессов продолжает расти.
Я хотел бы узнать, что это за процесс и почему мой сервер постоянно разветвляет этот процесс? Это должен быть процесс ядра, но он, похоже, потребляет много идентификатора процесса и загрузки ЦП.
Спасибо.
решение1
kworker
процессы являются рабочими процессами ядра, и наличие большого их количества, скорее всего, не принесет вреда.
Рабочие потоки ядра могут выполнять множество действий, вот несколько случайных примеров:
- Выполнение обратной записи кэша страниц
- Обработка определенных видов аппаратных событий
- Много, много других вещей.
Чтобы узнать, что делает любой kworker, вы можете посмотреть /proc/<kworker_pid>/stack
. Например:
$ cat /proc/$(pgrep -of kworker)/stack
[<ffffffff85c0c705>] acpi_ns_evaluate+0x1bc/0x23a
[<ffffffff85bffe09>] acpi_ev_asynch_execute_gpe_method+0x98/0xff
[<ffffffff85be4e30>] acpi_os_execute_deferred+0x10/0x20
[<ffffffff8588dc21>] process_one_work+0x181/0x370
[<ffffffff8588de5d>] worker_thread+0x4d/0x3a0
[<ffffffff85893f1c>] kthread+0xfc/0x130
[<ffffffff8588de10>] process_one_work+0x370/0x370
[<ffffffff85893e20>] kthread_create_on_node+0x70/0x70
[<ffffffff858791ba>] do_group_exit+0x3a/0xa0
[<ffffffff85e6a2b5>] ret_from_fork+0x25/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
Этот kworker действует на событие ACPI. Вы можете это сказать, потому что он находится внутри своей функции "обработки", process_one_work
которая в конечном итоге приводит к функциям, связанным с обработкой событий ACPI (например acpi_os_execute_deferred
, ).
Вероятно, у многих вы обнаружите такой стек или что-то похожее:
[<ffffffff9409a37d>] worker_thread+0xbd/0x400
[<ffffffff940a0355>] kthread+0x125/0x140
[<ffffffff946780c5>] ret_from_fork+0x25/0x30
[<ffffffffffffffff>] 0xffffffffffffffff
Эти рабочие ядра просто сидят и ждут, когда их начнут выполнять.
В зависимости от конфигурации вашей системы, вполне может быть нормальным иметь много kworkers. Если только они не создают активных проблем, я бы не стал беспокоиться о них.