Plötzliche Lastspitzen und Wartezeiten für Datenträgerblöcke

Plötzliche Lastspitzen und Wartezeiten für Datenträgerblöcke

Hallo, erstklassige Server-Gurus!

Ich betreibe einen Ubuntu-Server, der einen Apache-Tomcat-Dienst und eine MySQL-Datenbank hostet. Die Serverlast liegt selbst während der arbeitsreichsten Stunden der Woche immer nahe Null. Trotzdem kommt es 1-2 Mal pro Woche zu zufälligen Abstürzen, bei denen der gesamte Server nicht mehr reagiert.

Ein interessanter Effekt dieser Sperrung ist, dass alle Cronjobs anscheinend später als geplant ausgeführt werden, zumindest zeigen das die Zeitstempel in verschiedenen Systemprotokollen an. Daher scheint es mir so, als ob tatsächlich der gesamte Server einfriert und nicht nur die benutzerdefinierte Software, die als Teil des Tomcat-Dienstes läuft. Das Einfrieren dauert normalerweise etwa 3-5 Minuten, und danach läuft alles wieder normal.

Hardware:
Model: Dell PowerEdge R720, 16 cores, 16 GB ram
HDD-configuration: Raid-1 (mirror)

Main services: 
apache tomcat, mysql, ssh/sftp

#uname -a
Linux es2 2.6.24-24-server #1 SMP Tue Jul 7 19:39:36 UTC 2009 x86_64 GNU/Linux

Beim Ausführen von sysstat kann ich enorme Spitzen sowohl bei der durchschnittlichen Auslastung als auch bei den Wartezeiten auf Festplattenblöcke erkennen, die zeitlich genau mit den Zeiten übereinstimmen, in denen Kunden Probleme mit dem Backend-System gemeldet haben. Nachfolgend sehen Sie eine Grafik der Festplattennutzung von sar mit einer sehr deutlichen Spitze um ca. 12:30 Uhr.

Ich entschuldige mich aufrichtig dafür, dass ich dies auf einem externen Server abgelegt habe, aber mein Ruf ist zu schlecht, um Dateien hier direkt einzufügen. Außerdem musste ich sie zusammenstellen, da ich nur einen Link posten kann :S

Sar-Grundstücke:http://213.115.101.5/abba/tmpdata/sardata_es.jpg

Grafik 1: Block warten, beachten Sie, wie der Util% auf 100 % bei ca. 12,58 steigt

Grafik 2: Blockübertragung, hier nichts Ungewöhnliches.

Grafik 3: Durchschnittliche Belastung, Spitzen zusammen mit Grafik 1

Grafik 4: CPU-Auslastung, immer noch nahe 0 %.

Grafik 5: Speicher, hier nichts Ungewöhnliches

Hat jemand eine Ahnung, was diesen Effekt auf einem System verursachen könnte? Wie ich bereits erklärt habe, ist die einzige Software, die auf dem Server läuft, ein Tomcat-Server mit einer SOAP-Schnittstelle, die es Benutzern ermöglicht, sich mit der Datenbank zu verbinden. Remote-Anwendungen stellen auch über SSH eine Verbindung zum Server her, um Dateien abzurufen und hochzuladen. In arbeitsreichen Zeiten haben wir vermutlich etwa 50 gleichzeitige SSH/SFTP-Verbindungen und nicht mehr als 1-200 Verbindungen über HTTP (SOAP/Tomcat).

Beim Googeln habe ich Diskussionen über Datei-Handles und Inode-Handles gefunden, aber ich glaube, diese sind für 2.6.x-Kernel normal. Ist jemand anderer Meinung?

cat /proc/sys/fs/file-nr
1152    0       1588671
cat /proc/sys/fs/inode-state
11392   236     0       0       0       0       0

Gleichzeitig zeigt „sar -v“ diese Werte für die Zeit des Auflegens oben an, aber die Inode-Nr. ist hier IMMER sehr hoch im Vergleich zu oben.

12:40:01    dentunusd   file-nr  inode-nr    pty-nr
12:40:01        40542      1024     15316         0
12:45:01        40568      1152     15349         0
12:50:01        40587       768     15365         0
12:55:01        40631      1024     15422         0
13:01:02        40648       896     15482         0
13:05:01        40595       768     15430         0
13:10:01        40637      1024     15465         0

Ich habe dies auf zwei unabhängigen Servern gesehen, auf denen die gleiche Hardware, das gleiche Betriebssystem, die gleiche Software, die gleiche RAID-Konfiguration usw. ausgeführt wurden. Daher möchte ich glauben, dass es eher von der Software/Konfiguration als von der Hardware abhängt.

Vielen Dank für deine Zeit
/Ebbe

Antwort1

Die Probleme hingen mit einem Inkompatibilitätsproblem zwischen Ubuntu 8.04 LTS (Hardy) und dem Dell PERC 6/i RAID-Controller zusammen, wie in diesem Fehler gemeldet:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/607167 Ein Upgrade auf Ubuntu 10.04 LTS Lucid (Kernel 2.6.32) behebt das Problem.

Falls jemand anderes auf die gleichen Probleme stößt.

Antwort2

Möglicherweise führen Sie eine schwere Abfrage aus, die einen vollständigen Tabellenscan durchführt. Haben Sie Ihr langsames Abfrageprotokoll überprüft?

Wenn das der Fall ist, fügen Sie einfach entsprechende Indizes hinzu.

PS: Entschuldigung, wenn Sie das bereits getan haben.

verwandte Informationen