Da wir bei six groups jetzt auf mehre Applikationssever umstellen, müssen wir unsere Sessions in Zukuft in der Datenbank speichern.
Wie das zusamen mit Doctrine funktioniert steht beim Lampjunkie sehr gut beschrieben. Weiterhin haben wir folgendes gelernt:
- Die Session Lifetime muss größer als 0 sein (wir hatten zuvor den Hack fürs Verhindern von Session Timeouts verwendet und erstmal ging daher nicht viel)
- In der php.ini müssen bestimmte Werte geändert werden, damit alte Sessions automatisch aus der DB entfernt werden:
session.gc_probability = 1 session.gc_divisor = 100session.gc_maxlifetime = Wert in settings.yml - Update: Sehr wichtig ist außerdem, dass man die session_id Spalte mit einem Index versieht, damit das Updaten der Sessions in der DB nicht ewig dauert. Sonst bekommt man schnell Probleme. Bei uns war z.B. bei ca. 80.000 Sessions in der DB Schluss und die kommen relativ schnell zusammen wenn man den session timeout auf einen Tag stellt, denn Crwaler erzeugen ebenfalls Einträge in der Tabelle. Die Update Queries brauchen dann sehr lange - in unserm Fall bis zu 15 Sekunden! Also sollte die Tabelle session so modifiziert werden:
ALTER TABLE `sessions` ADD INDEX ( `sess_id` );
Keine Kommentare
Kommentare zu diesem Beitrag als RSS 2.0 feed.
Kommentar abgeben