Launcher Produkte Bitnami Dokumentationimaxe CLI Blog Kontakt
imaxe memcached Cache v1.1.0

Betreibe deinen Cache, ohne Dateien anzufassen

Berechnet und setzt Cache-Größe, Threads und Verbindungen passend zu deiner Instanz, verwaltet die SASL-Zugangsdaten und das TLS-Zertifikat und zeigt den Dienststatus live — alles ohne memcached.conf von Hand zu bearbeiten.

$ imaxe memcached status
Version
v1.1.0
Unterbefehle
9
Konfiguration
/etc/imaxe/memcached.yml
Braucht root
ja
Ports
11211 TLS · 11212 local

Was dieses Modul tut #

Memcached wird über eine Textdatei und eine Handvoll Flags konfiguriert: wie viel RAM, wie viele Threads, wie viele Verbindungen. Die richtigen Zahlen hängen von der Instanzgröße ab, und danebenzuliegen ist teuer — entweder ist der Cache zu klein oder du frisst den RAM, den das System braucht.

Das Modul memcached übernimmt das und alles rundherum: es berechnet das Tuning aus dem echten RAM der Maschine, verwaltet die SASL-Zugangsdaten (in diesem Image Pflicht), pflegt das TLS-Zertifikat, das beim ersten Start erzeugt wird —nie im AMI eingebacken— und liefert den Live-Status mit den Statistiken des Dienstes.

Bevor du anfängst

Befehle, die Zugangsdaten lesen oder die Konfiguration ändern, brauchen root (nutze sudo). Vorsicht bei optimize: neue Werte anzuwenden startet den Dienst neu, und ein Neustart leert den Cache. Wenn du lieber selbst neu startest, nimm --no-restart.

SchnellanleitungAufgaben Schritt für Schritt

Schnellanleitung #

Wähle, was du tun willst. Jedes Rezept bringt den fertigen Befehl mit — kopieren und auf Kopieren drücken.

1

Dienststatus ansehen

Prüfe auf einen Blick, ob der Cache gesund ist und welches Tuning greift.

Verbinde dich per SSH mit dem Benutzer ubuntu auf deine Instanz.

Frag den Status ab: du siehst, auf welchen Ports gelauscht wird, ob TLS und SASL aktiv sind, das angewandte Tuning und Live-Statistiken (belegter Speicher, Elemente, Treffer und Fehlschläge):

terminal
$ sudo imaxe memcached status

Für ein Dashboard oder ein Skript? Hänge --json an:

terminal
$ sudo imaxe memcached status --json
Wenn hits wächst und evictions niedrig bleibt, ist der Cache gut dimensioniert. Schießen die Verdrängungen hoch, spring zu Cache-Größe anpassen.
2

Mit dem Cache verbinden

Hol dir Benutzer, Passwort und Port, um deine Anwendung darauf zu richten.

Dieses Image verlangt SASL: es gibt keinen anonymen Zugriff. Frag die Zugangsdaten dieser Instanz ab (das Passwort kommt maskiert):

terminal
$ sudo imaxe memcached credentials

Wenn du es wirklich kopieren willst, gib es im Klartext aus:

terminal
$ sudo imaxe memcached credentials --show-password
Port 11211 spricht TLS; 11212 ist Klartext und lauscht nur auf Loopback, für die Werkzeuge des Systems. Öffne 11211 nicht ins Internet: öffne es für den CIDR deiner VPC.
3

Cache-Größe anpassen

Berechne Speicher, Threads und Verbindungen für die echte Maschinengröße neu.

Sieh dir erst an, welche Werte herauskämen, ohne etwas zu ändern:

terminal
$ sudo imaxe memcached optimize --show

Überzeugen sie dich, wende sie an. Der Dienst startet neu und der Cache wird geleert:

terminal
$ sudo imaxe memcached optimize

Mehr Cache und weniger Reserve fürs System? Erhöhe den RAM-Prozentsatz:

terminal
$ sudo imaxe memcached optimize --memory-pct 75
Mit --dry-run siehst du zusätzlich den Konfigurationsblock, der geschrieben würde. Und mit --no-restart wird angewandt, ohne neu zu starten: die neuen Werte greifen beim nächsten Start.
4

SASL-Benutzer anlegen

Lege Zugangsdaten für deine Anwendungen an, rotiere oder lösche sie.

Liste die Benutzer in der SASL-Datenbank auf:

terminal
$ sudo imaxe memcached users list

Lege einen pro Anwendung an, mit zufälligem Passwort:

terminal
$ sudo imaxe memcached users add app1

Ein bestimmtes Passwort? Übergib es über die Standardeingabe, damit es weder in ps noch in der Historie landet:

terminal
$ sudo imaxe memcached users add app1 --stdin
Um das Passwort eines Benutzers zu ändern: imaxe memcached users rotate <Benutzer>. Ohne Namen rotiert der Produktbenutzer.
5

TLS-Zertifikat prüfen

Prüfe die Gültigkeit und erneuere das Zertifikat der Instanz.

Das Zertifikat entsteht beim ersten Start jeder Instanz und wird nie zwischen Maschinen geteilt. Sieh dir das aktuelle an:

terminal
$ sudo imaxe memcached tls show

Erneuere es jederzeit, auch wenn das aktuelle noch gültig ist:

terminal
$ sudo imaxe memcached tls renew --force
Es ist ein selbstsigniertes Zertifikat mit langer Laufzeit. Dein Client muss ihm vertrauen oder seinen SHA-256-Fingerabdruck prüfen — genau den gibt tls show aus.
Startet nicht, oder die Zugangsdaten fehlen?

Zugangsdaten und Zertifikat werden bei jedem Start von instance-setup erzeugt, aufgerufen durch systemd. Antwortet ein Befehl mit Code 65, hat diese Instanz ihren ersten Start nicht abgeschlossen: prüfe sudo systemctl status memcached, bevor du etwas änderst.

CLI-ReferenzBefehle, Flags und Dateien

Übersicht #

Aufruf
imaxe memcached <Unterbefehl> [flags]

Fast alle Unterbefehle brauchen root (nutze sudo), weil sie die SASL-Datenbank, das Zertifikat oder die Dienstkonfiguration lesen. Hänge --json an status, credentials, users list oder tls show für maschinenlesbare Ausgabe.

Unterbefehle #

UnterbefehlWas er tutRelevante Flags
optimizeBerechnet und setzt die beste Cache-Größe, Threads und Verbindungen für diese Instanz.--memory-pct --dry-run --show --no-restart
statusDienststatus: Listener, TLS, SASL, angewandtes Tuning und Live-Statistiken.--json
credentialsZeigt die SASL-Zugangsdaten dieser Instanz und wie man sich verbindet.--json --show-password
usersVerwaltet SASL-Benutzer: list, add, rotate und delete.--password --stdin --json
set-passwordÄndert das Passwort des SASL-Benutzers des Produkts. Kurzform von users rotate.--random --stdin
open-portÖffnet den memcached-Port in der Host-Firewall (ufw).--cidr --json
close-portSchließt den Port in der Host-Firewall und entfernt vorhandene Regeln.--json
tlsTLS-Zertifikat dieser Instanz: show und renew.--force --json
instance-setupBereitet die Instanz vor dem Start des Dienstes vor. systemd ruft es bei jedem Start auf.--bake

Argumente und Flags #

FlagTypStandardBeschreibung
--memory-pctint60In optimize: Prozentsatz des nutzbaren RAM für den Cache.
--reserve-mem-mbint512In optimize: RAM in MB, die unangetastet bleibt — reserviert für System und übrige Dienste.
--threadsint0In optimize: Worker-Threads. 0 leitet sie aus der CPU-Anzahl ab.
--max-connectionsint0In optimize: gleichzeitige Verbindungen. 0 leitet sie aus der Cache-Größe ab.
--dry-runboolfalseIn optimize: schreibt nichts; zeigt die Werte und den Konfigurationsblock, der angewandt würde.
--showboolfalseIn optimize: gibt nur die berechneten Werte aus.
--no-restartboolfalseIn optimize: schreibt die Konfiguration, startet den Dienst aber nicht neu. Ein Neustart leert den Cache.
--passwordstringIn users add/rotate: konkretes Passwort. Fehlt es, wird ein zufälliges erzeugt.
--stdinboolfalseIn users add/rotate: liest das Passwort von der Standardeingabe, damit es weder in ps noch in der Historie auftaucht.
--show-passwordboolfalseIn credentials: gibt das Passwort im Klartext aus. Standardmäßig maskiert.
--forceboolfalseIn tls renew: erneuert auch dann, wenn das aktuelle Zertifikat gültig und von dieser Instanz ist.
--randomboolfalseBei set-password: erzeugt ein starkes Passwort und gibt es einmalig aus.
--cidrstringBei open-port: beschränkt die Regel auf diese Quelle. Ohne Angabe ist jede Quelle erlaubt.
--jsonboolfalseGibt das Ergebnis als strukturiertes JSON auf stdout aus.

Dateien und Pfade #

PfadInhalt
/etc/imaxe/memcached.ymlModulkonfiguration: Dienst, Pfade und die Standardwerte für optimize, TLS und SASL.
/etc/memcached.confmemcached-Konfiguration. Wird von optimize geschrieben: nicht von Hand bearbeiten.
/etc/systemd/system/memcached.service.d/systemd-Drop-in mit den Startparametern, die das Modul setzt.
/etc/memcached/tls/Zertifikat und privater Schlüssel dieser Instanz, beim ersten Start erzeugt.
/etc/sasl2/memcached-sasldb2SASL-Datenbank mit den Benutzern und ihren Passwörtern.

Beispiel für memcached.yml:

/etc/imaxe/memcached.yml
service: memcached
port: 11211
optimize:
  memory_pct: 60
  memory_min_mb: 64
  reserve_mem_mb: 512
  threads: 0
  max_connections: 0
tls:
  enabled: true
  days: 3650
  plain_local_port: 11212
sasl:
  enabled: true
  user: memcached

Exit-Codes und Logs #

Jeder Aufruf liefert einen Code, den du mit echo $? prüfen kannst — praktisch zum Verketten in Skripten:

0OKVorgang erfolgreich abgeschlossen.
1ERRNicht klassifizierter Fehler. Sieh ins Log.
2USAGEUngültige Argumente oder Unterbefehl.
64NOMEMCACHEDmemcached ist auf dieser Maschine nicht installiert.
65NOSECRETEs werden Zugangsdaten verlangt, die diese Instanz noch nicht erzeugt hat.
66NOUFWufw ist auf dieser Maschine nicht verfügbar.

Verfolge den Dienst live, während du arbeitest:

terminal
$ sudo systemctl status memcached
$ sudo journalctl -u memcached -f

Fehlerbehebung #

SymptomWahrscheinliche UrsacheLösung
Es kommt NOSECRET (Code 65)Die Instanz hat ihren ersten Start nicht abgeschlossen — dabei entstehen die Zugangsdaten.Prüfe sudo systemctl status memcached und versuch es erneut.
Es kommt NOMEMCACHED (Code 64)Das Modul ist installiert, memcached aber nicht auf dem Host.Du bist auf einem anderen Image als dem des Produkts: installiere memcached oder nutze das richtige AMI.
Viele evictions im statusDer Cache ist zu klein für das, was du speicherst: Elemente werden verdrängt, um Platz zu schaffen.Erhöhe den Prozentsatz mit optimize --memory-pct oder wechsle auf eine Instanz mit mehr RAM.
Der Cache ist plötzlich leerDer Dienst wurde neu gestartet, und memcached schreibt nichts auf Platte.Nach optimize normal. Zum Anwenden ohne Neustart nimm --no-restart.
Der Client lehnt das Zertifikat abEs ist selbstsigniert und für jede Instanz eigen.Vertraue ihm im Client oder prüfe seinen Fingerabdruck mit tls show.

Steckst du beim Modul Memcached fest?

Schreib uns mit der Ausgabe von «imaxe <module> status --json» und wir antworten dir schnell.

Support kontaktieren