Linux mantém bifurcando o “kworker”

2

Eu instalei recentemente um redhat 7.4 em um servidor físico e somente o banco de dados oracle 12 C está rodando nele. Eu encontrei há mais de 200 processos é "kworker", o número de processos é continuar aumentando.

Eu gostaria de saber sobre o que é este processo e por que meu servidor está forçando este processo continuamente? Deve ser um processo do kernel, mas parece consumir muita identificação do processo e carregamento da CPU.

Obrigado.

    
por Jay AU 22.11.2017 / 15:26

1 resposta

2

Processos

kworker são processos de trabalho do kernel, e muitos deles provavelmente são inofensivos.

Os threads de trabalho do kernel podem estar fazendo várias coisas, como alguns exemplos aleatórios:

  • Como gerar write-backs de cache de página
  • Manipulando certos tipos de eventos de hardware
  • Muitas, muitas outras coisas

Para saber o que qualquer kworker está fazendo, você pode ver /proc/<kworker_pid>/stack . Por exemplo:

$ 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á agindo em um evento ACPI. Você pode dizer isso porque está dentro de sua função "processamento", process_one_work , que eventualmente leva a funções relacionadas ao processamento de eventos da ACPI (como acpi_os_execute_deferred ).

Você provavelmente encontrará muitos com essa pilha ou algo parecido:

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

Esses funcionários do kernel estão simplesmente esperando que o trabalho seja feito.

Dependendo da configuração do seu sistema, pode ser normal ter muitos kworkers. A menos que eles estejam ativamente causando problemas, eu não me preocuparia com eles.

    
por 22.11.2017 / 15:33