Behoben: Memcache behällt Daten nicht lange im Speicher

Serverdienste ohne eigene Kategorie
kane
Posts: 82
Joined: 2002-10-04 01:22
 

Behoben: Memcache behällt Daten nicht lange im Speicher

Post by kane »

Hallo zusammen!

Folgendes Problem tritt derzeit auf:

Derzeit nutzen wir Memcache als Caching-Lösung.
Wir stellen eine Verbindung zu 3 Servern, wobei ein Server 2x den Memcache-Deamon gestartet (2 unterschiedliche Ports (je 4GB)

192.168.0.1:11211 (4 GB)
192.168.0.1:11212 (4 GB)
192.168.0.2:11211 (700 MB)
192.168.0.3:11211 (700 MB)

-> php.ini: memcache.hash_strategy = consistent <-

$o_memcache = new Memcache();
$o_memcache->addServer([SERVER],[PORT]);

Ein Connect wird ja nicht mehr benötigt, da Memcache, sobald eine Anfrage kommt, die Verbindung automatisch herstellt.
Nichts destro trotz haben wir auch mit $o_memcache = connect([SERVER],[PORT]); uns an EINEN Server verbunden - gleiches Problem.

Über $o_memcache->get([KEY]); prüfen wir, ob der der KEY schon hinterlegt ist. (KEY = UNIQUE!)
Im Fehlerfall liefert GET "false".
Bei TRUE wird der Inhalt des KEY ausgegeben, sonst mit
$o_memcache->set([KEY],[INHALT],MEMCACHE_COMPRESSED,mktime(date("H")+6));
für 6 Stunden weggeschrieben.

Man sollte nun meinen, dass der KEY für die nächsten 6 Stunden in Memcache gespeichert wurde...
Ist er aber nicht. Denn nach ca. 2-3 Minuten wird unter dem genannten KEY von GET wieder FALSE geliefert.
Die Server Stats liefern uns noch folgende Infos:

evictions = 0
cur_connections: ~50-100


Folgende Sachverhalte haben wir getestet:

- Memcache mit addServer, connect und pconnect angesprochen.
- 1 Server als Connection, mehrere Server (wie oben gelistet)

Apache 2.11 (glaube ich - Serveradmin ist grad net da :))
PHP 5.2.8
Memcache-Info aus phpinfo();
Active persistent connections 4
Version 2.2.5
Revision $Revision: 1.111 $
memcache.allow_failover 1 1
memcache.chunk_size 8192 8192
memcache.default_port 11211 11211
memcache.default_timeout_ms 1000 1000
memcache.hash_function crc32 crc32
memcache.hash_strategy consistent consistent
memcache.max_failover_attempts 20 20


Nun die Frage:
Hat jemand Erfahrungen mit Memcache oder hat jemand vielleicht schon einmal in Verbindung mit Memcache dieses Phänomen beobachten können?
Wir stehen echt auf dem Schlauch.

Besten Dank im Voraus!
Grüße
JM
Last edited by kane on 2009-08-17 10:23, edited 1 time in total.
kane
Posts: 82
Joined: 2002-10-04 01:22
 

Re: Memcache behällt Daten nicht lange im Speicher

Post by kane »

So, nach diversen Mails in diversen Mailinglisten wurde uns empfohlen, memcached zu nutzen.
Nachdem wir ein paar Statements entsprechend abgeändert haben und die aktuelle Memcached-Version 1.0.0 einsetzen tritt das oben beschriebene Phänomen nicht mehr auf.
Warum aber genau der beschriebene Sachverhalt bei memcache (ohne d) auftritt, konnte bisher leider nicht geklärt werden.
Aber Hauptsache, es läuft jetzt so, wie es soll :)