Daher habe ich in New Relic auf vielen unserer Websites bemerkt, dass viele unserer langen Seiten aufgrund von Mage_Core_Model_Session_Abstract_Varien :: start geladen werden. Ich habe einige Nachforschungen angestellt und noch niemanden gesehen, der darüber gesprochen hat.
Wir verwenden Nginx, PHP FPM, Redis für Caching und Memcache für Sitzungen. Einige meiner Ideen sind, dass es vielleicht etwas anderes ist, das ewig dauert, und es scheint nur, dass das Laden der Sitzung das Problem ist. Oder es gibt einen benutzerdefinierten Code, der der Sitzung viele Daten hinzufügt, was zu großen Sitzungen führt.
Ich kenne mich in Bezug auf Sitzungen und deren Verwaltung nicht so gut aus, habe jedoch einige Artikel über Sitzungssperren gefunden. Ich glaube jedoch nicht, dass die Leute gleichzeitig so viele Seiten öffnen würden.
Einige dieser Ladevorgänge dauern zwischen 20 und 30 Sekunden. Ich bin nur neugierig, ob jemand anderes dies bemerkt hat oder mehr darüber weiß, wie man diese Art von langen Anfragen aufgrund von Sitzungen analysiert.
quelle
Antworten:
Dies hängt höchstwahrscheinlich mit einem Phänomen in Bezug auf Dateisystemsitzungen zusammen. Ungeachtet dessen, was Sie über die Verwendung von Mecached für Sitzungen melden, habe ich dies selbst nur gesehen, als ich tatsächlich das Dateisystem verwendet habe.
Dies wurde zuvor hier behandelt:
/magento//a/3721/336
In der Tat zeigt ein Screenshot eines Cachegrinds den genauen Zeitpunkt, zu dem der Sitzungsstart übermäßig viel Zeit in Anspruch nimmt,
Mage_Core_Model_Session_Abstract_Varien::start
wie Sie richtig ausgeführt haben:In dem Thread, auf den verwiesen wird, gab es den Vorschlag, dass dieser Effekt mit einem In-Memory-Sitzungsspeicher verringert werden könnte - aber es gibt keine konkreten Daten, von denen ich weiß, dass sie die Theorie stützen. Wenn Sie tatsächlich memcached verwenden, ist es naheliegend, dass die Sitzungssperre auf PHP-Ebene verhindert, dass zukünftige Anforderungen an den Sitzungsspeicher gewährt werden, bis die Sperre aufgehoben wird.
Im Allgemeinen tritt dies nur bei Anforderungen auf, für die Zugriff auf Sitzungsinformationen erforderlich ist. Die Architektur Ihres Frontend-Themas kann daher hilfreich sein, um die erforderliche Zugriffsmenge zu begrenzen, um potenzielle Sperren zu vermeiden, wenn ein Benutzer bei der Entscheidung über einen anderen Tab oder eine andere Anforderung mit langer Laufzeit verfügt wegziehen.
HTH, Prost.
quelle