Linux verzweigt weiterhin „kworker“

Linux verzweigt weiterhin „kworker“

Ich habe gerade Redhat 7.4 auf einem physischen Server installiert und darauf läuft nur die Oracle-Datenbank 12 C. Ich habe festgestellt, dass es mehr als 200 Prozesse im „kworker“ gibt und die Anzahl der Prozesse ständig zunimmt.

Ich möchte wissen, worum es bei diesem Prozess geht und warum mein Server diesen Prozess ständig aufspaltet. Es sollte ein Kernelprozess sein, aber er scheint eine Menge Prozess-ID und CPU-Last zu verbrauchen.

Danke schön.

Antwort1

kworkerProzesse sind Kernel-Arbeitsprozesse und es ist wahrscheinlich harmlos, viele davon zu haben.

Kernel-Worker-Threads könnten eine beliebige Anzahl von Dingen tun, hier einige zufällig ausgewählte Beispiele:

  • Durchführen von Seitencache-Rückschreibvorgängen
  • Behandeln bestimmter Arten von Hardwareereignissen
  • Viele, viele andere Dinge

Um zu erfahren, was ein Kworker macht, können Sie sich Folgendes ansehen /proc/<kworker_pid>/stack. Zum Beispiel:

$ 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

Dieser Kworker reagiert auf ein ACPI-Ereignis. Sie können dies erkennen, weil er sich innerhalb seiner „Verarbeitungs“-Funktion befindet, process_one_workdie schließlich zu Funktionen führt, die mit der Verarbeitung von ACPI-Ereignissen zusammenhängen (wie acpi_os_execute_deferred).

Sie werden wahrscheinlich feststellen, dass viele diesen oder einen ähnlichen Stapel haben:

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

Diese Kernel-Worker warten einfach nur darauf, dass Arbeit ansteht.

Abhängig von Ihrer Systemkonfiguration kann es durchaus normal sein, viele Kworker zu haben. Sofern sie nicht aktiv Probleme verursachen, würde ich mir über sie keine Sorgen machen.

verwandte Informationen