Linux sigue bifurcando "kworker"

Linux sigue bifurcando "kworker"

Recientemente instalé un redhat 7.4 en un servidor físico y solo se ejecuta la base de datos Oracle 12 C. Descubrí que hay más de 200 procesos en "kworker", y el número de procesos sigue aumentando.

Me gustaría saber de qué se trata este proceso y por qué mi servidor bifurca este proceso continuamente. Debería ser un proceso del kernel, pero parece consumir una gran cantidad de ID de proceso y carga de CPU.

Gracias.

Respuesta1

kworkerLos procesos son procesos de trabajo del núcleo y es probable que tener muchos de ellos sea inofensivo.

Los subprocesos de trabajo del kernel podrían estar haciendo varias cosas, como algunos ejemplos aleatorios:

  • Realizar reescrituras en caché de páginas
  • Manejo de ciertos tipos de eventos de hardware
  • Muchas, muchas otras cosas

Para saber qué está haciendo cualquier kworker, puedes mirar /proc/<kworker_pid>/stack. Por ejemplo:

$ 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

Este kworker está actuando sobre un evento ACPI. Puede saber esto porque está dentro de su función de "procesamiento", process_one_workque eventualmente conduce a funciones relacionadas con el procesamiento de eventos ACPI (como acpi_os_execute_deferred).

Probablemente encontrarás que muchos tienen esta pila o algo similar:

[<ffffffff9409a37d>] worker_thread+0xbd/0x400
[<ffffffff940a0355>] kthread+0x125/0x140
[<ffffffff946780c5>] ret_from_fork+0x25/0x30
[<ffffffffffffffff>] 0xffffffffffffffff

Estos trabajadores del núcleo simplemente están sentados esperando que se haga el trabajo.

Dependiendo de la configuración de su sistema, podría ser normal tener muchos kworkers. A menos que estén causando problemas activamente, no me preocuparía por ellos.

información relacionada