Initialisierungsprozess bei 100% CPU-Auslastung


7

Ich habe einen Ubuntu x64-Computer auf einem OpenVZ VPS-Konto auf einem QuadCore-Prozessor mit 1 GB / 2 GB (Burst). Vor ein paar Tagen habe ich es geschafft, es erfolgreich auf 11.10 Oneiric Ocelot zu aktualisieren. Es gibt nur ein Problem: Mein "Init" -Prozess (PID = 1) ist zu 100% CPU-ausgelastet, sodass ein Kern 99,5% der Zeit auf Vollgas bleibt.

Gibt es eine Lösung, um das Verhalten des seltsamen Init zu stoppen? Kann ich nachverfolgen, was hinter diesem Init-Prozess passiert, um herauszufinden, warum er so hoch ist?


Auch für mich. Leider gibt es nach dem Setzen der Protokollpriorität auf info oder debug keine zusätzlichen Informationen in / var / log / syslog oder Nachrichten.

Antworten:


7

Aus dem Bellum PLC Forum - Ubuntu 11.10 init 100% CPU-Nutzungsfehler :

Ich bemerkte ein CPU-Auslastungsproblem mit init aufgrund eines Upstarts, der ständig 99% RAM verbrauchte. und ich entschied mich, funktionierende Lösung zu finden. Dies ist ein Fehler, der von Ubuntu bestätigt wurde. Im Folgenden finden Sie einen einfachen Schnellkorrektur-Patch, der für alle vollständig funktionieren sollte.

Öffnen Sie zuerst SSH und fügen Sie den folgenden PPA hinzu.
add-apt-repository ppa:jammy/upstart.fix-880049
Drücken Sie die Eingabetaste und erneut die Eingabetaste.

Wenn der Befehl nicht gefunden wurde, geben Sie diesen Befehl zuerst aus.
apt-get install python-software-properties
Dann
apt-get update && apt-get upgrade


Ich habe es zu Ihrer Frage hinzugefügt. Sie können die Schaltfläche "Bearbeiten" verwenden, um diese Details in Zukunft hinzuzufügen :)
Marco Ceppi

1
Ich weiß, dass dies alt ist, aber PPA funktioniert nicht mehrCannot add PPA: 'ppa:jammy/upstart.fix-880049'. Please check that the PPA name or format is correct.
Redithion

4

Leider ist es sehr schwierig, wenn nicht unmöglich, ptrace () für seine 'Expect Fork'-Funktionen zu verwenden, da es die meiste Zeit mit gdb gespannt oder befestigt werden kann.

Sie können jedoch die ausführliche Protokollierung aktivieren.

initctl log-priority info

Wenn du noch mehr Zeug willst

initctl log-priority debug

Dies kann zumindest einen Hinweis darauf geben, wie all diese CPU-Zyklen aufgebraucht werden.


0

Das Problem ist, dass init Zugriff auf / dev / console benötigt, der in einer virtuellen OpenVZ-Maschine nicht vorhanden ist.

Wenn Sie Zugriff auf den physischen Computer haben, können Sie das Gerät / dev / console erstellen, indem Sie Zugriff auf das physische Gerät gewähren:

vzctl set 105 --devices c:5:1:rw --save

Ersetzen Sie 105 durch die Nummer Ihres virtuellen Servers. Ich hatte das gleiche Problem, und dies löste das Problem, ohne dass ein gepatchter Init kompiliert werden musste.


-1

Es sieht so aus, als wäre dies ein bekannter Fehler in 11.10:

https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/880049

Ein Patch wurde eingereicht:

https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/880049/+attachment/2567049/+files/no_dev_console.patch

EDIT: Okay, der Patch scheint zu funktionieren, aber ich habe ihn ein bisschen modifiziert.

Hinzufügen dieses:

    if (system_setup_console (CONSOLE_NONE, (! restart)) < 0)
        nih_free (nih_error_get ());

bis init/main.cnach:

    if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0)
        nih_free (nih_error_get ());

funktioniert für mich, sofern das 100% CPU-Problem behoben ist, aber die Entwickler sagen, dass es keine richtige Lösung ist.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.