Derzeit laufen einige VMs und 'Baremetal'-Server. Java läuft auf Hochtouren - manchmal über 400%. Zufällig hängt der Server mit dem Fehler in der Konsole "Java - länger als 120 Sekunden blockiert" - kjournald, etc.
Ich kann keine dmesg-Ausgabe erhalten, weil dieser Fehler aus irgendeinem Grund nur in die Konsole schreibt, auf die ich keinen Zugriff habe, da diese remote gehostet wird. Daher kann ich keine vollständige Ablaufverfolgung kopieren.
Ich habe die Umgebung geändert, in der sich das befindet - sogar der physische Server und das passiert immer noch.
Ich habe hung_task_timeout_secs in 0 geändert, falls dies ein falsches Positiv gemäß http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html ist .
Außerdem ist irqbalance nicht installiert, vielleicht würde es helfen?
dies ist Ubuntu 10.04 64bit - dasselbe Problem mit dem neuesten 2.6.38-15-Server und 2.6.36.
Könnten CPU- oder Speicherprobleme / kein Swap-Link dieses Problem verursachen?
Hier ist die Konsolenmeldung:
[58Z?Z1.5?Z840] INFUI task java:21547 blocked for more than 120 seconds.
[58Z?Z1.5?Z986] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?Z06Z] INFUI task kjournald:190 blocked for more than 120 seconds.
[58Z841.5?Z336] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?Z600] INFUI task flush-202:0:709 blocked for more than 120 seconds.
[58Z841.5?Z90?] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?3413] INFUI task java:21547 blocked for more than 120 seconds.
[58Z841.5?368Z] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z961.5?ZZ36] INFUI task kjournald:60 blocked for more than 120 seconds.
[58Z961.5?Z6Z5] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z961.5?31ZZ] INFUI task flush-202:0:709 blocked for more than 120 seconds.
[58Z961.5?3393] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
dmesg
(wenn sie kürzlich ausreichend protokolliert wurde), da dieser Befehl den Ringpuffer für die Kernelprotokollierung druckt. Hoffentlich wird Ihrsyslog
Setup es auch irgendwo anmelden/var/log
, aber ich konnte nicht wissen, wo./var/log/dmesg
, wird jedoch möglicherweise angezeigt , wenn Sie dendmesg
Befehl ausführen . Die Datei wird während des Startvorgangs erstellt und erfasst im Allgemeinen nur Kernel-Meldungen zur Startzeit (die andernfalls möglicherweise aus dem Kernel-Ringpuffer entfernt werden würden). Sie können auch die dort angegebenesysstat
Ressourcennutzung installieren / aktivieren und anzeigen I / O / iowait, wahrscheinlich im Zusammenhang mit Swap (Sysstat wird bei der Identifizierung helfen.)Übernehmen Sie dann die Änderung mit:
löste es für mich ....
quelle
Ich habe diesen Fehler kürzlich in einem unserer Produktionscluster durchlaufen:
..
Bei weiterer Überprüfung der gefundenen sar-Protokolle wurde gleichzeitig die IO-Wartezeit erhöht.
Bei der Überprüfung der Hardware (physische Datenträger) wurden mittlere Fehler und andere SCSI-Fehler auf einem der physischen Datenträger protokolliert, die wiederum die E / A-Vorgänge blockierten, da nicht genügend Ressourcen für die Zuordnung vorhanden waren.
Dies lag also an einem Hardwarefehler in unserem Cluster.
Es wäre also gut, wenn Sie nach der Kerndatei suchen könnten und wenn das Dienstprogramm ipmi vorhanden ist, prüfen Sie, ob der Befehl ipmiutil / ipmitool sel elist vorhanden ist, um nach dem Problem zu suchen.
Grüße, VT
quelle
Sie können die Überwachungsschnittstelle Ihres Cloud-Anbieters aufrufen und überprüfen, ob Sie die für Ihren Speicher angegebenen maximalen IOps nicht überschritten haben. Dies erklärt, warum das Leeren der Cache-Daten sehr lange gedauert hat.
Die maximalen IOps sind auf der Seite mit den Speicherattributen verfügbar.
quelle