Wie lange ist die magento session-Dateien aufbewahrt werden müssen?
Ich habe einen Kunden, der ist magento session-Dateien sind schnell zu wachsen außer Kontrolle. Wir Spülen Sie einmal die Woche, aber es scheint, dass es häufiger sein.
1) Was diese Dateien tun? Wie sind Sie verbunden, um die Benutzer-online-Erfahrung (z.B. wenn ich diese löschen und der user ist immer noch auf der Seite, wie werden Sie betroffen sind)
2) Wie schnell kann ich diese löschen? Wie lange wollen Sie die Dateien wirklich brauchen, um auf dem server bleiben?
Chris
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jede Datei ist eine person die Sitzung und sollte nicht länger als
session.gc_maxlifetime
Sekunden - die garbage collection - set-in der server php.ini-Datei oder überschrieben in einem .htaccess-Datei. Die Senkung dieser Wert bedeutet, dass weniger Sitzungen sammeln.Magento hat einen anderen trick bezüglich der Sitzungen; In die
/app/etc/local.xml
Datei diesession_save
Wert kann geändert werden, umdb
Bedeutung der Datenbank verwendet werden, statt die Dateien aber immer noch hinsichtlich der oben genannten garbage collector Lebensdauer. Auchmemcache
können angegeben werden, wenn Sie festgelegt haben, dass (siehe/app/etc/local.xml.additional
). Beide sind sehr nützlich, wenn der server ein cluster.Dateisystem-basierte Sitzungen, Sie werden automatisch beschnitten werden, indem die PHP-session clean-up-cron – also die Dateien sind wahrscheinlich zu sein gelöscht innerhalb von ~7200 Sekunden der Schöpfung. So auch an einem geschäftigen Ort (30k uniques pro Tag), gibt es in der Regel nur rund 4.000 session-Dateien in ./var/session – das ist nichts für einen Linux-server.
Jedoch der clean-up-tatsächlich beruht auf der cron-arbeiten - die nicht normalerweise sehen die in der ./var/session-Verzeichnis von Magento. So sollte man ein neues system cron
Den Standard-clean-up-Periode für die Sitzungen 7200 Sekunden, das sollte mehr als ausreichend, Sie können zwar ändern, die oben zur Klage.
Mit Memcache-Sitzungen, TCP/IP ist das nur overhead, was für eine Bereitstellung auf einem einzelnen server würde es langsamer als Datei basiert. Also dann, würden Sie einen unix-socket statt, was entfernt, die Aufwand und gibt mehr Sicherheit. Aber sogar noch, Ihre Kunden-sessions werden abgeschnitten/begrenzt auf die Menge an RAM, die Sie zuordnen können. Die Durchschnittliche Magento session ist 4Kb – so werden Sie in der Lage, Unterstützung von 256 aktiven Sitzungen pro MB, die Sie zuordnen. So sicher sein, stellen Sie ein entsprechendes limit zu vermeiden, die Kunden nach dem Zufallsprinzip zu verlieren, cart/Sitzung. Und auch Bedenken, ein Memcache-daemon neu gestartet wird abwischen alle vorhandenen Sitzungen (SCHLECHT!).
Mit Redis (nicht native, sondern über eine Erweiterung), erhalten Sie einen gleichwertigen support wie Memcache, aber mit dem zusätzlichen Vorteil der Persistenz (sollten Sie wünschen, es zu benutzen). Mit der Cm_Redis-Erweiterung, Sie werden auch in der Lage sein, um die Vorteile von session-Kompression. Wir haben festgestellt, diese extension funktioniert sehr gut sowohl auf CE und EE-Implementierungen.
Die mit der DB, die Standard-prune Ablauf Einstellung ist eine mächtige 1 Woche, also mit der oben genannten Größe des Ladens als ein Beispiel (30k uniques pro Tag), werden Sie mit Blick auf eine DB-Tabelle Größe für core_cache_session von rund 7GB – die Schleifen Ihren Shop zu einem kompletten Stillstand für fast jeden session-basierten Betrieb.
Aus der Erfahrung des hosting - beiden großen (230k Besucher pro Tag) und klein (<1k Besucher pro Tag) speichert, ist unsere Empfehlung:
Single-server Bereitstellung - Dateien
Multi-server-Bereitstellung - Redis (mit einer separaten Datenbank von den wichtigsten Magento-cache)
Schrieb ich eine wirklich Gründliche Antworten hier http://magebase.com/magento-tutorials/magento-session-storage-which-to-choose-and-why/comment-page-1/#comment-1980
session.gc_maxlifetime
hängt Ihre Lebensdauer der Sitzung, wenn die Sitzungen gehalten werden, der Benutzer bleibt angemeldet oder seine Einstellungen bleiben intakt, wenn Sie den Besuch der store wieder. Sie können deaktivieren Sie, so oft Sie mögen, aber denken Sie daran, dass es sich Abmelden /clear-carts für alle Nutzer, die eingeloggt sind, während Sie es tun
Vergessen Sie nicht, zu schauen, was Teil des Systems nicht ordnungsgemäß speichern unangemessene Mengen von Daten in die session, um tatsächlich das problem zu beheben. Clearing-Sitzungen früher ist nur eine temporäre Lösung.
Session-Dateien sollten immer klein bleiben. Chancen sind, werden einige Skript speichert eine unangemessen große Menge von Daten in der session zu "Effizienz" und das problem verursacht.
Es ist fast mit Sicherheit für Objekte in der session gespeichert dieses problem verursacht. Ein gemeinsames Muster in Magento ist Objektdaten gefesselt wie dieses:
Ablegen eines Objekts in der session können diese riesigen Ketten von Objekten unbeabsichtigt, speichern viele überflüssige Daten. Wenn möglich, speichern Sie nur string-und numerischen Daten in der session, wie arrays von IDs für Produkte, anstatt die Produkte selbst.
Ich hatte Sie auch häufen sich also fügte ich einen cron-job mit folgendem... (dies war anhand der Anleitung in meiner php.ini-Datei..nur unter dem "session.gc_maxlifetime = 1440" - Einstellung)
Beispielsweise das folgende script ist das äquivalent zu
;- Einstellung session.gc_maxlifetime auf 1440 (1440 Sekunden = 24 Minuten):
; find /Pfad/zu/Sitzungen -cmin +24 | xargs rm