Linux: kacpid schnell auf 90% CPU?
Fabian Transchel
- webserver
Hallo Forum,
habe mir aus Neugierde (und weil ich mir von den Optimierungsmöglichkeiten einges verspreche) auf meinen LAN-Server gentoo installiert. Alles lief super, hab auch gleich von grund auf 'ne Stage1 gebastelt, dazu den 2.6.7er Kernel.
Als ich dann endlich die Basisinstallation hinter mich gebracht hatte und reinbootete staunte ich nicht schlecht, wie schnell das Ding im Vergleich zum Debian nebenan war. Nach 20-30 Minuten jedoch, egal was gemacht wird (auch wenn garnichts gemacht wird und die Maschine einfach nur läuft) geht der CPU-Verbrauch des Prozesses "kacpid" auf bis zu 90% und alles andere wird dementsprechend superlangsam. Dazu sei gesagt, dass es sich um einen Pentium III 1,2GHz handelt, dadrunter liegt ein VIA-Chipsatz und kompiliert wurde das System mit "march=pentium3 -03 -pipe -fomit-frame-pointers".
Neben den gentoo-patches hab ich den acpi-patch von sourceforge.net eingespielt, da mein Accton Ethernet Controller (der über den tulip-Treiber läuft) sonst keinen Interrupt bekommt, weil's BIOS zu dämlich ist.
Grüße aus Barsinghausen,
Fabian
hallo Fabian,
Nach 20-30 Minuten jedoch, egal was gemacht wird (auch wenn garnichts gemacht wird und die Maschine einfach nur läuft) geht der CPU-Verbrauch des Prozesses "kacpid" auf bis zu 90%
Ich habe ebenfalls ein GenToo mit einem Kernel 2.6.6 laufen, allerdings geringfügig andere Hardware einschließlich eines offenbar klügeren BIOS.
Ich kann einen Prozeß "kacpid" nicht finden. Apache läuft, SQUID läuft, SAMBA läuft, VMWARE läuft und der X-Server hat heftig zu tun, also sind genügend Prozesse am Herumwirbeln, aber "kacpid" ist nicht dabei. Findest du noch raus, wozu der gehört? Und was passiert, wenn du ihn einfach killst? Welchen Rang hat er (PID-Nr.)?
Grüße aus Berlin
Christoph S.
Hallo Christoph,
Ich kann einen Prozeß "kacpid" nicht finden. Apache läuft, SQUID läuft, SAMBA läuft, VMWARE läuft und der X-Server hat heftig zu tun, also sind genügend Prozesse am Herumwirbeln, aber "kacpid" ist nicht dabei. Findest du noch raus, wozu der gehört? Und was passiert, wenn du ihn einfach killst? Welchen Rang hat er (PID-Nr.)?
Hat den PID 5, wird direkt beim Booten gestartet und hat Priorität -10. IMO deutet das k im Namen darauf hin, dass es sich um einen Kernelprozess handelt (was bei der PID garnicht anders sein kann), acpi spricht für sich und das d am Ende heißt dann wohl Daemon. Google ist da allerdings wenig auskunftsfreudig, was die Suche Fehlfunktionen selbigen Namens angeht. Killen kann ich ihn, aber dann kommt sofort ein neuer "kapcid" dabei 'raus, der auch Priority -10 hat und subjektiv betrachtet noch mehr CPU verbrät.
Grüße aus Barsinghausen,
Fabian
hallo Fabian,
Hat den PID 5, wird direkt beim Booten gestartet und hat Priorität -10. IMO deutet das k im Namen darauf hin, dass es sich um einen Kernelprozess handelt (was bei der PID garnicht anders sein kann)
Richtig, deshalb hab ich ja nachgefragt. Es bestand die Möglichkeit, daß er eine PID höher als 5000 hat.
acpi spricht für sich und das d am Ende heißt dann wohl Daemon.
Auch richtig. Du hast vorhin etwas von einem acpi-Patch geschrieben, den du dir bei Sourceforge geholt hättest. Ich habe das Teil nicht, aber was du hier angibst, deutet darauf hin, daß das der Bösewicht ist. Schau mal, ob du nicht vielleichgt doch ohne diesen patch auskommen kannst oder bau dir mal deinen Kernel neu, da könnten eh noch allerhand Teile drinstecken, die du vielleicht nicht benötigst.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
Richtig, deshalb hab ich ja nachgefragt. Es bestand die Möglichkeit, daß er eine PID höher als 5000 hat.
Auch wenn's hier nicht zutrifft: Was hätte das diagnostisch zu bedeuten?
acpi spricht für sich und das d am Ende heißt dann wohl Daemon.
Auch richtig. Du hast vorhin etwas von einem acpi-Patch geschrieben, den du dir bei Sourceforge geholt hättest. Ich habe das Teil nicht, aber was du hier angibst, deutet darauf hin, daß das der Bösewicht ist. Schau mal, ob du nicht vielleichgt doch ohne diesen patch auskommen kannst oder bau dir mal deinen Kernel neu, da könnten eh noch allerhand Teile drinstecken, die du vielleicht nicht benötigst.
Habe alles, was ich nicht unbedingt brauche (auch den patch) rausgenommen. Mit einem Satz: Hülft nüx. Nach 15 Minuten is Sense.
Grüße aus Barsinghausen,
Fabian
hi,
Es bestand die Möglichkeit, daß er eine PID höher als 5000 hat.
Auch wenn's hier nicht zutrifft: Was hätte das diagnostisch zu bedeuten?
Daß es kein Systemprozeß ist und man ihn deshalb problemlos killen kann.
Habe alles, was ich nicht unbedingt brauche (auch den patch) rausgenommen. Mit einem Satz: Hülft nüx. Nach 15 Minuten is Sense.
Naja, dumm gelaufen, sorry :-(
Da weiß ich denn auch nicht weiter.
Grüße aus Berlin
Christoph S.
Hi Christoph,
Es bestand die Möglichkeit, daß er eine PID höher als 5000 hat.
Auch wenn's hier nicht zutrifft: Was hätte das diagnostisch zu bedeuten?Daß es kein Systemprozeß ist und man ihn deshalb problemlos killen kann.
*g* Na was du nicht sagst ;-)
Habe alles, was ich nicht unbedingt brauche (auch den patch) rausgenommen. Mit einem Satz: Hülft nüx. Nach 15 Minuten is Sense.
Naja, dumm gelaufen, sorry :-(
Da weiß ich denn auch nicht weiter.
Macht nix, danke für deine Hilfe bis hier. Ich habe mittlerweile mit einigen weiter spezifizierten Suchakten ganze zwei Kernel-Maillisten-Postings rausfischen können, wo's auch darum geht. Da heißt es, dass das ganze seit 2.6.4 auftritt und noch nicht gefixed wurde. Weißt du, wie ich an einen 2.6er < 2.6.4 mit den Gentoo-Patches herankomme? Gibt's sowas noch, oder muss ich mir die selbst zusammensuchen? :(
Grüße aus Barsinghausen,
Fabian
Moin!
Weißt du, wie ich an einen 2.6er < 2.6.4 mit den Gentoo-Patches herankomme? Gibt's sowas noch, oder muss ich mir die selbst zusammensuchen? :(
emerge bietet dir an, auch spezifische Versionen der verfügbaren Programme auszuwählen. Die Programmhilfe verrät dir mehr dazu - nur soviel als Handreichung:
emerge -optionen "<kernels/yourkernelflavour-2.6.4"
Das sollte dir, vorausgesetzt, du hast dir genehme Optionen und statt "kernels/yourkernelflavour" die richtige Auswahl gesetzt, einen Kernel mit einer Version kleiner 2.6.4 installieren - mutmaßlich also 2.6.3.
Du kannst auch exakte Versionen verwenden (Gleichheitszeichen zu Beginn), und umgekehrt geht das ganze natürlich auch (größer bzw. größer/gleich gibts ebenso und wird in der Security-Mailingliste verwendet, um explizit die neueste, mindestens aber die herausgekommene gefixte zu installieren.
Wichtig sind die Anführungszeichen, ansonsten stellt dir die Shell ein Bein und interpretiert die Größer/Kleiner-Zeichen als Pipe-Umleitungen.
- Sven Rautenberg
Hallo Sven,
Wichtig sind die Anführungszeichen, ansonsten stellt dir die Shell ein Bein und interpretiert die Größer/Kleiner-Zeichen als Pipe-Umleitungen.
*g* Ja das habe ich gemerkt. Da ich den Fehler jetzt auch bei einem 2.6.4er und einem 2.6.1er (der früher völlig problemlos lief) bekomme denke ich, dass ich auf Linux für etwa 2 Monaten verzichte und dann neue Hardware kaufe, bei der ich sichergehe, dass sie unterstützt wird. Vor alem ein Mainboard mit intelligentem BIOS, das von sich aus den Netzwerkkarten Interrupts zuordnet, steht oben auf der Liste...
Grüße aus Barsinghausen,
Fabian
Hallo,
Da ich den Fehler jetzt auch bei einem 2.6.4er und einem 2.6.1er (der früher völlig problemlos lief) bekomme denke ich, dass ich auf Linux für etwa 2 Monaten verzichte und dann neue Hardware kaufe, bei der ich sichergehe, dass sie unterstützt wird. Vor alem ein Mainboard mit intelligentem BIOS, das von sich aus den Netzwerkkarten Interrupts zuordnet, steht oben auf der Liste...
Was passiert denn, wenn Du ACPI beim Booten rausschmeisst (acpi=off oder so)?
Fuer einen Server sollte es doch nicht so viel ausmachen (Bildschirm zum Ausschalten gibt es ja wohl nicht).
Gruss
Thomas
Hi,
Da ich den Fehler jetzt auch bei einem 2.6.4er und einem 2.6.1er (der früher völlig problemlos lief) bekomme denke ich, dass ich auf Linux für etwa 2 Monaten verzichte und dann neue Hardware kaufe, bei der ich sichergehe, dass sie unterstützt wird. Vor alem ein Mainboard mit intelligentem BIOS, das von sich aus den Netzwerkkarten Interrupts zuordnet, steht oben auf der Liste...
Was passiert denn, wenn Du ACPI beim Booten rausschmeisst (acpi=off oder so)?
Fuer einen Server sollte es doch nicht so viel ausmachen (Bildschirm zum Ausschalten gibt es ja wohl nicht).
Richtig - Problem dabei ist, dass die Netzwerkkarten keinen Interrupt bekommen und nicht funktionieren, und _das_ ist für einen Server schlecht.
Grüße aus Barsinghausen,
Fabian
Hallo,
»»...Vor alem ein Mainboard mit intelligentem BIOS, das von sich aus den Netzwerkkarten Interrupts zuordnet, steht oben auf der Liste...
...schon mal an ein Bios-(rom)update gedacht oder bereits ausgeführt (falls überhaubt möglich)?
Gruss
Alain
Hallo,
»»...Vor alem ein Mainboard mit intelligentem BIOS, das von sich aus den Netzwerkkarten Interrupts zuordnet, steht oben auf der Liste...
...schon mal an ein Bios-(rom)update gedacht oder bereits ausgeführt (falls überhaubt möglich)?
Nein, es gibt keines.
Grüße aus Barsinghausen,
Fabian