Memcached und PHP ... massive Verzögerung bei Sitzungen

Memcached und PHP ... massive Verzögerung bei Sitzungen

Ich arbeite an einem neuen Server, der mit Ubuntu 10.04 erstellt wurde und auf dem php-fastcgi, nginx und memcached laufen.

Das Skript phpinfo() wird geladen und funktioniert einwandfrei, genauso wie ein Testskript im Memcached-Format. Bei jedem Skript, das Sitzungen verwendet, explodiert die Seitenladezeit.

--- memcached.ini ---
extension=memcached.so
memcache.hash_strategy = "consistent"
memcache.max_failover_attempts = 100
memcache.allow_failover = 1
session.save_handler = memcached
session.save_path = "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

Lassen Sie mich wissen, wenn Sie andere Konfigurationen sehen müssen.

Antwort1

Das Problem liegt in der session.save_path-Syntax zwischen memcache.so und memcached.so:

extension=memcache.so
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

Vergleiche

extension=memcached.so
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"

Beachten Sie das Protokoll im Memcache, im Memcached-Protokoll fehlt es.

Stellen Sie außerdem sicher, dass Sie tatsächlich die .so-Datei haben, die Sie laden möchten. Es handelt sich um zwei separate Pakete über apt-get oder yum oder welche Variante Sie auch immer verwenden.

Jeder Fehler, der durch das Laden des falschen Moduls oder die Verwendung einer falschen Syntax verursacht wird, führt zu einer 30 Sekunden langen Ladeverzögerung in PHP, während versucht wird, Ihren Sitzungsmechanismus zu verwenden und schließlich eine Zeitüberschreitung auftritt.

Hoffe, das spart jemandem Zeit. ;-)

Antwort2

PHPs Memcached ist NICHT PHPs Memcache! Es handelt sich um separate Implementierungen.

Was bringt Ihnen ein einfaches 'session.save_path = "127.0.0.1:11211"'? Oder

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

Beachten Sie das fehlende „d“ im Save_Handler.

Antwort3

Ändern Sie die PHP-Erweiterung von memcached.so in memcache.so. Dadurch werden alle Verzögerungsprobleme behoben. Ich bin nicht sicher, ob es ein Ubuntu-Fehler oder ein Fehler in meinem Setup ist, aber jetzt funktioniert es einwandfrei.

verwandte Informationen