99,9% System CPU Load auf 4 Kernen

mastermind

mastermind

Grünschnabel
Hi,

in hoffnung das mir irgendwer einen weiteren Anhlatspunkt geben kann :-). Auf einem DL380 G5 mit 16 GB ram und 2xDual-Core 3,0 GHz läuft ein Vserver-kernel (von http://linux-vserver.org/). Es sind mittlerweile 70 vserver Produktiv drauf installiert. in einem unregelmäßigen zeitabstand von 30 min bis 1h (manchmal noch höher frequnziert manchmal niedriger) schiesst die Load auf $hohezahl (bis zu 500) und nichts geht mehr. Jeder Prozess muss auf CPU-Zeit warten, demenstsprechend ist debuggin auch schwer. Was ich mittlerweile mit einigen Tool rausfinden konnte ist wie im Betreff erwähnt, das es sich hier um eine 100 %tige CPU Auslatung von allen 4 kernen handelt. Die CPU Zeit wieder aber nicht im Userspace verbraucht sondern ist kernel CPUZEIT (also systemcalls usw.)

avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.25 99.75 0.00 0.00 0.00

Hat jmd von euch eine vernünftige Möglichkeit hier herrauszufinden welche Systemcalls die CPU dicht machen, bzw. welcher Userland prozess soviel kernellast erzeugt, dass alle CPUs dabei drauf gehen.

Ach übrigens bevor mich jmd frag, hier läuft ein alter 2.4.37 Kernel :-).
 
Ergänzung...

Munin läuft, nmon läuft, minutlicher cron mit nem "vps auxwww", nem iostat -mx 1 3" sobald die load hoher ist als 60. mit "sar" seh ich auch die system load. Das Problem dauert ca. 2-4 minuten an und danach ist wieder alles flott und die load singt sofort stark ab. Nen find nach directory mit grossem Dir_index (ext3) bringt auch keinen wirklichen aufschluß (es gibt ca. 20 Dirs (sind alles Maildirs) die nen größeren dir_index als 200k haben) aber alle unter 1MB. Was zum Teufel verbrät meine CPU mit Systemtime... hat jmd Ideen, Lösungen, Debugging tools die ich noch nicht verwendet habe.
 
Schon einmal top/htop versucht?
Das sollte dir doch zeigen was die CPU auslastet.
Ggf. kannst du ja dann das Programm direkt oder per kill abschießen.

T-Virus
 
Schon einmal top/htop versucht?
Das sollte dir doch zeigen was die CPU auslastet.
Ggf. kannst du ja dann das Programm direkt oder per kill abschießen.

T-Virus

Danke erstmal für deine Antwort. Da es sich hier um einen Vserver-Host mit einem Vserver kernel ist das etwas komplizierter. JEder Vserver läuft in einem eigenen "Security Context" und das Hauptsystem ebenfalls, ein topim Hauptsystem würde mit nur prozesses seines eigenen Contexts anzeigen, aber dafür gibt es ein Tool das heisst "vtop", das liefert dann ein top aller contexte aus. Allerdings frisst es noch mehr CPU weil ca. 3500 Prozesse auf dem System laufen. Lange Rede kurzer Sinn: vtop aber auch top auf einem der VServer lässt sich nur zeit des hängers nicht mehr aufrufen also. Die shell nimmt noch input an aber nach einem Return passiert nichts mehr. Ein in einem tcpdump (ohne jegliche filterung!!!), sehe ich zum zeitpunkt des "hängens" kein einziges BIT mehr über die Leitung gehen, wie als wenn die Kisten kurzzeitig nichts anderes machen kann als diesen einen prozess (welcher auch immer es ist) zubearbeiten. Ich bin echt am verzweifeln...

Um es nochmal zuverdeutlichen, wenn ich versuche den Prozess "in flagranti" zu erwischen in dem ich ein
Code:
watch -n 1 "cat  /proc/loadavg"
mache oder ein
Code:
watch -n 1 uptime
um herrauszufinden wann es los geht
bleibt der "watch" einfach stehen, beim uptime seh ich dann keine aktulisierungen mehr weil er einfach kein uptime mehr aufrufen kann, sowie kein anderes tool mehr was mir irgendwie zeigen könnte "wer derböse ist".


verbleibe in hoffnung auf weitere ideen ...

mastermind
 
ist auf einem deiner DomU's ein suchserver drauf ? der ein DeltaIndex durchführt? das könnte die Load so hochschnellen lassen.

Ansonsten ist mit deinen angaben nicht viel anzufangen .... Da die Loadspitzen in einem Interval auftauchen, würde ich mal beobachten welcher der vm's so viel CPU oder I/O verbraucht. Im anschluss nachsehen auf der VM
 
Zurück
Oben