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?

Cristian Sitov
quelle
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

RaidX
quelle
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.

SpamapS
quelle
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.

Cedric Roijakkers
quelle
-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.

Yuttadhammo
quelle