Memcached auf Debian Lenny/Squeeze installieren

2010-11-24 - kostaki 1 Kommentar »

Memcached ist ein in Memory Speicher, der seine Daten komplett im Arbeitsspeicher des Servers aufbewahrt und deshalb sehr schnell auf diese zugreifen kann. Man kann ihn zum entlasten der Festplatte benutzen, wenn diese das limitierende Glied ist oder man speichert das Ergebnis von Berechnungen zwischen die damit schneller zur Verfügung stehen. Der Einsatz macht eigentlich immer Sinn wenn man durch langsame Aufrufe in der Gesamtabarbeitung eines Auftrages beeinträchtigt wird. Natürlich sollte man auch genügend Arbeitsspeicher zur Verfügung haben. Das benötigte Pakete ist memcached und in Debian Lenny ist die Version 1.2.2 enthalten. Debian Squezze bringt die memcached Version 1.4.5 mit.

Memcached installieren

Die Installation ist wie immer sehr einfach.

$ aptitude install memcached

Schon hat man einen laufenden memcache Daemon.

$ netstat -tap | grep memcached
tcp 0 0 localhost:11211  *:* LISTEN 12669/memcached

Memcached Konfigurieren

In der Standardkonfiguration sind dem memcached 64MB RAM zugewiesen, er lauscht nur auf dem Lokalen Interface und der Standard Port 11211 wird benutzt. Da memcached ohne Zugriffskontrolle auskommt (das würde die Anfragen nur verlangsamen), sollte man vorsichtig sein wenn man das Interface ändert. Wenn man globalen Zugriff haben möchte, sollte man den Port durch seine Firewall schützen und nur ausgewählten IPs Zugriff gewähren. Die memcached.conf liegt im /etc/ Ordner.

$ nano /etc/memcached.conf

Hier nur die wichtigen Settings. Eine komplette Übersicht bekommt man per man memcached angezeigt.

# der zugewiesene Speicher für memcached in MB
# der Speicher wird nur benutzt wenn er gebraucht wird
-m 64

# der memcached port
-p 11211

# der Daemon startet als root und springt dann zu diesem User
-u nobody

# das Interface auf dem der memcached lauschen soll
-l 127.0.0.1

Nach Anpassungen muss man den Daemon neu starten. Dabei wird auch alles gelöscht das im Speicher vorgehalten wurde.

$ /etc/init.d/memcached restart

Memcached Status abfragen und überwachen

Es gibt mehrere Wege wie man den aktuellen Status des memcached bekommen kann. Direkt von der Console aus bieten sich die folgenden an:

$ echo stats | nc 127.0.0.1 11211

Oder Toplike mit dem folgenden Befehl:

$ watch "(echo stats ; echo quit ) | nc 127.0.0.1 11211"

Memcached Status Werte

Hier die wichtigsten Status Werte mit Erklärung. Eine komplette Liste gibt es hier.

  • version: Die Version des memcached.
  • curr_items: Die Anzahl aktuell gespeicherter Einträge im memcache.
  • total_items: Die Gesamt Anzahl gespeicherter Einträge seit dem Start des Daemons.
  • bytes: Aktuelle Anzahl an Bytes in Benutzung vom memcache.
  • curr_connections: Aktive Verbindungen.
  • total_connections: Die Gesamt Anzahl an Verbindungen seit dem Start des Daemons.
  • cmd_get: Gesamt Anzahl an get Commands seit Daemonstart.
  • cmd_set: Gesamt Anzahl an set Commands seit Daemonstart.
  • get_hits: Die Anzahl an Cache Hits, also die Keys die angefragt wurden und aus dem Cache ausgeliefert werden konnten.
  • get_misses : Das Äquivalent zu get_hits. Die Anfragen die nicht beantwortet werden konnten.
  • evictions: Anzahl an noch validen Cache Werten, die entfernt werden mussten um Speicher freizugeben. Wenn der zugewiesene Arbeitsspeicher voll ist und man weitere Werte cachen möchte, dann wirft memcached automatisch Werte aus dem Speicher. Wenn dieser Wert hoch ist, sollte man über die Erhöhung des zugewiesenen Speichers nachdenken oder seine Applikation anpassen.
  • bytes_read/bytes_written: Bytes gelesen und Bytes geschrieben seit dem Daemonstart.
  • limit_maxbytes: Maximal zur Verfügung stehende Bytes.

Related Links

  1. Trackback(s)

  2. Jan 30, 2011:Memcached und PHP Memcache » PHP » PHP und MySQL Werkzeugkasten

Kommentar schreiben

*

*