- Zusammenkunft mit Edipress, Amazee und Anolim
- Drupal optimieren
- DrupalCon SF - Performance Session
- Drupal vs. Joomla - CMS vs Framework
- Drupal Coding Standards - Warum sich Einhalten lohnt
- Drupal Module - Review und Tutorial - Masquerade
- Seite von Benutzer wird nicht angezeigt.
- Der Google Web Browser
- Keine Berechtigung, Seiten zu editieren, obwohl Permission gegeben
- Die Lösung für internes Linken in Drupal
Drupal langsame Schreibzugriffe mit innodb
Mit Drupal 6.17 wurde innoDB eingeführt. Bisher wurde immer myisam verwendet. Die Standardwerte, welche mit MySQL kommen sind für MyIsam ziemlich gut und man kommt schon sehr weit damit. Verwendet man jedoch die Standardwerte für innoDB, dann hat man einen ziemlich Flaschenhals.
Mit der Installation von Drupal 6.17 stellte ich fest, dass die Seite massiv langsamer wurde. Devel zeigte mir, dass vor allem Schreibzugriffe (z.B. auf die Cachetabellen) sehr langsam vorangingen... (Faktor 100 langsamer als vorher). So habe ich kurzerhand diese Tabellen wieder auf MyIsam zurückgesetzt und siehe da, es ging wieder schneller.
Heute hatte ich ein bisschen mehr Zeit, um ein wenig herumzuspielen. Schlussendlich habe ich die Lösung gefunden, den Flaschenhals zu öffnen:
innodb_flush_log_at_trx_commit = 2
Standardmässig ist er gar nicht gesetzt. Sobald ich den auf 2 gesetzt habe ist die Seite nur so "geflogen". Performance hat auch mit innoDB massiv zugenommen. Was ist passiert. Wenn innodb_flush_log_at_trx_commit auf 2 gesetzt ist, dann wird nur jede Sekunde etwas auf die Festplatte geschrieben, sonst wird jeder Schreibbefehl auch gleich auf die Festplatte geschrieben, was natürlich viel langsamer ist.
Also... ich bin überhaupt kein MySQL Perfromance Guru, aber das scheint mir eine sehr einfache und effiziente Lösung zu sein.



Pingback
[...] Drupal langsame Schreibzugriffe mit innodb | Rapslis Drupal World rapsli.ch/drupal-langsame-schreibzugriffe-mit-innodb – view page – cached Mit Drupal 6.17 wurde innoDB eingeführt. Bisher wurde immer myisam verwendet. Die Standardwerte, welche mit MySQL kommen sind für MyIsam ziemlich gut und man kommt schon sehr weit damit. Verwendet man jedoch die Standardwerte für innoDB, dann hat man einen ziemlich Flaschenhals. Tweets about this link [...]
Danke für den Tipp, wird
Danke für den Tipp, wird gleich mal eingearbeitet.
Ich hatte mit Drupal+MyISAM das Problem, das nach einem (ungeplanten) Server-Reboot immer ge-crashte Tabellen (cache, sessions, watchdog) zurückblieben, die ich dann manuell aus dem Backup wieder herstellen musste. Das ist - nach ersten Tests - bei INNODB nichtmehr der Fall. Und nun bekomme ich hoffentlich auch die Performance zurück :)
Ok, auch wenn ich mich jetzt
Ok, auch wenn ich mich jetzt als Depp outen sollte, aber:
Wo genau kann ich das innodb_flush_log_at_trx_commit denn umstellen? Will das auch mal probieren.
kein Problem ;) ist unter
kein Problem ;)
ist unter /etc/mysql/my.cnf
Oder dort wo deine MySQL konfiguration liegt.
Mit Drupal 6.17? Oder meinst
Mit Drupal 6.17? Oder meinst du Drupal 7? Weil ich kann in meinen D6-Installs kein Inno sehen in der DB.
mit Drupal 6.17. Aber unter
mit Drupal 6.17. Aber unter Umständen ist das nur der Fall, wenn man eine neue Installation macht.