In den letzten zwei Wochen haben wir zeitweise starke Spitzen in der CPU-Auslastung des Systems (angezeigt als% sys), die etwa eine halbe Minute dauern und die meisten Prozesse, einschließlich ssh, blockieren.
Ich habe versucht, dies herauszufinden, aber oben zeigt nichts Relevantes an (die Systemnutzung für Prozesse, die angezeigt werden, ist unbedeutend), Spitzen treten nur sporadisch auf und ich konnte die Spitze mit keiner Arbeitslast für die von diesem Webserver gehostete Webanwendung reproduzieren.
Wenn Sie Ideen zum Debuggen von% sys und (manchmal)% si CPU-Auslastung haben, teilen Sie diese bitte mit.
Systemspezifikationen (ich weiß nicht, ob dies relevant ist): Dedizierter Server, CentOS 6, Core i7 950, jederzeit konsistenter 4 bis 8 GB RAM frei, Festplatten befinden sich in RAID-1.
Zusätzliche Information:
- Die dmesg-Ausgabe ändert sich nicht zwischen den Spitzen
- / var / log / messages ändert sich nicht zwischen Spitzen
- Hier ist cat / proc / vmstat
- Hier wird mpstat 1 während eines typischen Spikes ausgegeben
Add 07.11.11: Sieht aus wie ein einfacher Neustart, der den Systemstatus wiederherstellt, und wir werden möglicherweise nie wissen, was die Störung überhaupt verursacht hat.
quelle
screenshot of top
,dmesg
und / oder/var/log/syslog
,/proc/vmstat
. Sie können vertrauliche Daten bei Bedarf vorher entfernen.Linux 2.6.32-71.29.1.el6.x86_64 #1 SMP Mon Jun 27 19:49:27 BST 2011 x86_64 x86_64 x86_64 GNU/Linux
Dateisysteme sind alle ext3.Antworten:
Ich weiß, dass dieser Thread wirklich alt ist und ich weiß, dass Sie sich dessen bereits bewusst sind,% sys -> Wenn der Zyklus in% system verbracht wird, erfolgt ein Großteil der Ausführung in Code niedrigerer Ebene, dh möglicherweise auf der Kernelseite. Wenn dieses Problem wieder reproduzierbar ist, sammeln Sie bitte die Ausgabe von:
Überprüfen Sie die Systemmeldungen (
var/log/messages
oder/var/log/syslog
), um festzustellen, ob ein Thread möglicherweise viel Zeit für die System-CPU benötigt.quelle
Deaktivieren Sie unter Centos 6.2 und 6.3 die Unterstützung großer Seiten:
quelle
Ein hoher% si würde eine hohe Interrupt-Rate bedeuten (si ist die Zeit, die in Softirq-Handlern, AFAIK, verbracht wird). Daher würde meine erste Vermutung sein, dass die Servernetzwerkschnittstelle gehämmert wird.
quelle
Es klingt dumm, aber ein Neustart hat geholfen und wir werden vielleicht nie wissen, was die Spitzen überhaupt verursacht hat.
Vielen Dank für die Antworten.
quelle
sar -I XALL 1 | grep -v 0.00
wird Ihnen sagen, welche Unterbrechungen diese weiche Systemzeit bekommenEs gibt viele Faktoren, die zur hohen prozentualen Systemauslastung beitragen, wie Anmeldung, Systemaufruf, Kontextwechsel (sowohl Thread als auch Prozedur), E / A und sogar Sockets-Daten, die vom Kernelmodus in den Benutzermodus kopiert werden. Ich schlage vor, Sie können sar, vmstat und iostat verwenden, um diese zu überprüfen. Darüber hinaus wäre es schön herauszufinden, welcher Prozess die hohe% sys-Nutzung beim Spike verursacht hat. gdb wäre in diesem Fall hilfreich. Finden Sie den Prozess heraus und verwenden Sie gdb, um ihn anzuhängen. Sie werden sehen, was in diesem Moment mit diesem Prozess los ist. Sie müssen nur beachten, dass für diesen Vorgang Debug-Informationen erforderlich sind, die in die Prozedur eingebettet sind .
quelle