Node-Speichern wird mit zunehmender Laufzeit des Servers langsam
am 02.09.2010 - 22:17 Uhr in
Guten Abend!
Ich habe mal eine Frage an die hier versammelten Experten. Und zwar ist mir aufgefallen, dass das Speichern eines neuen Nodes auf meiner Drupal-Website mit zunehmender Laufzeit des Servers immer länger dauert. Erst nach einem Reboot des Servers ist die Node-Speichern Geschwindigkeit für eine gewisse Zeit wieder sehr schnell.
Konkret:
- Ich betreibe eine Drupal-6 Website mit ca. 10.000 Nodes. Täglich kommen 30 – 40 Nodes dazu.
- Als wichtigste Module verwende ich path, pathauto, content template, cck, views
- Aktuell habe ich ca. 80.000 Besucher und 300.000 Seitenaufrufe pro Monat
- Die Seite liegt auf einem V-Server mit „normaler“ Debian Linux – Apache – PHP – MySQL Konfiguration. Nichts exotisches. Load: < 0,6, RAM: 1 GB frei, kein SWAP file belegt
- Die MySQL Datenbank optimiere ich öfters mit mysqlcheck --all-databases –optimize
- Nichts auffälliges in den Server-Logs
Was passiert
- Nach einem Reboot und die Tage danach ist sowohl die Ausgabe der Website (das Laden der Website) als auch das Speichern neuer Nodes sehr schnell.
- Läuft der Server einige Zeit, ist zwar die Ausgabe schnell, das Speichern neuer Nodes aber deutlich langsamer (so wie ich das bisher beobachten konnte hat nur die Laufzeit des Servers und nicht die aktuelle Last einen Einfluss darauf).
- Gestern habe ich zum Beispiel den Server wieder einmal rebootet. Davor lief er 4 Monate durch. Vor dem Reboot brauchte er zum Speichern eines neuen Nodes ca. 15 +/-1 Sekunden, nach dem Reboot 1 Sekunde.
Hat jemand eine Idee woran das liegen könnte? An Drupal oder an MySQL?
Ich würde zwar tippen, dass irgendeine Datenbanktabelle sehr voll läuft, irgendwas mit den Indexen passiert, etc, aber eine richtige Ahnung nach was ich suchen soll habe ich nicht. Außerdem ist er ja gerade schnell.
Ist jetzt zwar nicht wirklich kritisch, ich würde aber doch langfristig eher bei 1 Sekunde als bei 15 Sekunden bleiben (und nicht dauernd den Server rebooten müssen).
Also was kann man machen?
- Anmelden oder Registrieren um Kommentare zu schreiben

Zum einen würde ich den
am 02.09.2010 - 23:20 Uhr
Zum einen würde ich den Server ordentlich überwachen, etwa mit Munin, um über die Zeit nachverfolgen zu können wie sich diverse Parameter von System und laufenden Diensten über die Zeit entwickeln. Parallel würde ich mal einen Tag nach Nuestart und wenn es merklich langsamer wird zum einen mit dem MySQL Tuning Primer Skript den Status diverser MySQL Laufzeit-Parameter und -Statistiken ermitteln und vergleichen. Gleichzeitig würde ich zu diesen Zeitpunkten das Devel Modul aktivieren, die Performance samt DB-Abfragen protokllieren lassen und so ein Bild darüber gewinnen wo genau der Server die Zeit verbrät (im Webserverprozee, in der DB, wenn ja bei wievielen und welchen Abfragen, etc.).
Ohne ordentliche Datenbasis ist eine Diagnose so wenig möglich wie wenn man seinem Doc nicht sagt wo es einen drückt.