Lanceur Produits Bitnami Documentationimaxe CLI Blog Contact
imaxe memcached cache v1.1.0

Exploitez votre cache sans toucher aux fichiers

Calcule et applique la taille du cache, les threads et les connexions adaptés à votre instance, gère les identifiants SASL et le certificat TLS, et affiche l'état du service en direct — le tout sans éditer memcached.conf à la main.

$ imaxe memcached status
Version
v1.1.0
Sous-commandes
9
Config
/etc/imaxe/memcached.yml
Nécessite root
oui
Ports
11211 TLS · 11212 local

Ce que fait ce module #

Memcached se configure avec un fichier texte et une poignée d'options : combien de RAM lui donner, combien de threads, combien de connexions. Trouver les bons chiffres dépend de la taille de l'instance, et se tromper coûte cher — soit le cache est trop petit, soit vous mangez la RAM dont le système a besoin.

Le module memcached s'en charge, ainsi que de tout ce qui entoure le service : il calcule le tuning à partir de la RAM réelle de la machine, gère les identifiants SASL (obligatoires dans cette image), maintient le certificat TLS généré au premier démarrage —jamais figé dans l'AMI— et vous donne l'état en direct avec les statistiques du service.

Avant de commencer

Les commandes qui lisent des identifiants ou modifient la configuration nécessitent root (utilisez sudo). Attention à optimize : appliquer de nouvelles valeurs redémarre le service, et un redémarrage vide le cache. Si vous préférez redémarrer vous-même, utilisez --no-restart.

Guide rapidetâches pas à pas

Guide rapide #

Choisissez ce que vous voulez faire. Chaque recette apporte la commande déjà écrite — copiez-la et appuyez sur Copier.

1

Voir l'état du service

Vérifiez d'un coup d'œil que le cache est sain et quel tuning est appliqué.

Connectez-vous en SSH à votre instance avec l'utilisateur ubuntu.

Demandez l'état : vous verrez sur quels ports il écoute, si TLS et SASL sont actifs, le tuning appliqué et les statistiques en direct (mémoire utilisée, éléments, succès et échecs) :

terminal
$ sudo imaxe memcached status

Vous le voulez pour un tableau de bord ou un script ? Ajoutez --json :

terminal
$ sudo imaxe memcached status --json
Si hits augmente et que evictions reste bas, le cache est bien dimensionné. Si les évictions explosent, passez à Ajuster la taille du cache.
2

Me connecter au cache

Obtenez l'utilisateur, le mot de passe et le port pour y pointer votre application.

Cette image exige SASL : pas d'accès anonyme. Demandez les identifiants de cette instance (le mot de passe sort masqué) :

terminal
$ sudo imaxe memcached credentials

Au moment de le copier pour de bon, affichez-le en clair :

terminal
$ sudo imaxe memcached credentials --show-password
Le port 11211 parle TLS ; le 11212 est en clair et n'écoute que sur la boucle locale, pour les outils du système. N'ouvrez pas 11211 sur Internet : ouvrez-le au CIDR de votre VPC.
3

Ajuster la taille du cache

Recalculez mémoire, threads et connexions pour la taille réelle de la machine.

Regardez d'abord quelles valeurs sortiraient, sans rien toucher :

terminal
$ sudo imaxe memcached optimize --show

Si elles vous conviennent, appliquez-les. Le service redémarre et le cache se vide :

terminal
$ sudo imaxe memcached optimize

Plus de cache et moins de marge pour le système ? Montez le pourcentage de RAM :

terminal
$ sudo imaxe memcached optimize --memory-pct 75
Avec --dry-run vous voyez aussi le bloc de configuration qui serait écrit. Et avec --no-restart cela s'applique sans redémarrer : les nouvelles valeurs prennent effet au prochain démarrage.
4

Créer des utilisateurs SASL

Créez, changez ou supprimez les identifiants utilisés par vos applications.

Listez les utilisateurs présents dans la base SASL :

terminal
$ sudo imaxe memcached users list

Créez-en un par application, avec un mot de passe aléatoire :

terminal
$ sudo imaxe memcached users add app1

Un mot de passe précis ? Passez-le sur l'entrée standard pour qu'il n'apparaisse ni dans ps ni dans l'historique :

terminal
$ sudo imaxe memcached users add app1 --stdin
Pour changer le mot de passe d'un utilisateur : imaxe memcached users rotate <utilisateur>. Sans nom, c'est celui du produit qui tourne.
5

Vérifier le certificat TLS

Vérifiez l'échéance et renouvelez le certificat de l'instance.

Le certificat est généré au premier démarrage de chaque instance, il n'est donc jamais partagé entre machines. Regardez celui en usage :

terminal
$ sudo imaxe memcached tls show

Renouvelez-le quand vous voulez, même si l'actuel est encore valide :

terminal
$ sudo imaxe memcached tls renew --force
C'est un certificat auto-signé à longue validité. Votre client devra lui faire confiance ou vérifier son empreinte SHA-256, celle qu'affiche tls show.
Il ne démarre pas, ou l'identifiant est introuvable ?

L'identifiant et le certificat sont matérialisés par instance-setup à chaque démarrage, appelé par systemd. Si une commande répond avec le code 65, cette instance n'a pas terminé son premier démarrage : vérifiez sudo systemctl status memcached avant de toucher à quoi que ce soit.

Référence CLIcommandes, options et fichiers

Synopsis #

usage
imaxe memcached <sous-commande> [flags]

Presque toutes les sous-commandes nécessitent root (utilisez sudo) car elles lisent la base SASL, le certificat ou la configuration du service. Ajoutez --json à status, credentials, users list ou tls show pour une sortie lisible par machine.

Sous-commandes #

Sous-commandeCe qu'elle faitOptions utiles
optimizeCalcule et applique la meilleure taille de cache, threads et connexions pour cette instance.--memory-pct --dry-run --show --no-restart
statusÉtat du service : écoutes, TLS, SASL, tuning appliqué et statistiques en direct.--json
credentialsAffiche les identifiants SASL de cette instance et comment s'y connecter.--json --show-password
usersGère les utilisateurs SASL : list, add, rotate et delete.--password --stdin --json
set-passwordChange le mot de passe de l'utilisateur SASL du produit. Raccourci de users rotate.--random --stdin
open-portOuvre le port memcached dans le pare-feu de l'hôte (ufw).--cidr --json
close-portFerme le port dans le pare-feu de l'hôte et retire les règles existantes.--json
tlsCertificat TLS de cette instance : show et renew.--force --json
instance-setupPrépare l'instance avant le démarrage du service. systemd l'appelle à chaque démarrage.--bake

Arguments et options #

OptionTypePar défautDescription
--memory-pctint60Dans optimize : pourcentage de la RAM utilisable consacré au cache.
--reserve-mem-mbint512Dans optimize : RAM en Mo laissée intacte, réservée au système et aux autres services.
--threadsint0Dans optimize : threads de traitement. 0 les déduit du nombre de CPU.
--max-connectionsint0Dans optimize : connexions simultanées. 0 les déduit de la taille du cache.
--dry-runboolfalseDans optimize : n'écrit rien ; affiche les valeurs et le bloc de configuration qui serait appliqué.
--showboolfalseDans optimize : imprime uniquement les valeurs calculées.
--no-restartboolfalseDans optimize : écrit la configuration mais ne redémarre pas le service. Un redémarrage vide le cache.
--passwordstringDans users add/rotate : mot de passe précis. S'il est omis, il est généré aléatoirement.
--stdinboolfalseDans users add/rotate : lit le mot de passe sur l'entrée standard, pour qu'il n'apparaisse ni dans ps ni dans l'historique.
--show-passwordboolfalseDans credentials : imprime le mot de passe en clair. Masqué par défaut.
--forceboolfalseDans tls renew : régénère même si le certificat actuel est valide et propre à cette instance.
--randomboolfalsePour set-password : génère un mot de passe fort et l'affiche une seule fois.
--cidrstringPour open-port : limite la règle à cette source. Sans lui, toute source est autorisée.
--jsonboolfalseÉmet le résultat en JSON structuré sur stdout.

Fichiers et chemins #

CheminContenu
/etc/imaxe/memcached.ymlConfiguration du module : service, chemins, et valeurs par défaut d'optimize, TLS et SASL.
/etc/memcached.confConfiguration de memcached. Écrite par optimize : ne l'éditez pas à la main.
/etc/systemd/system/memcached.service.d/Drop-in systemd avec les paramètres de démarrage appliqués par le module.
/etc/memcached/tls/Certificat et clé privée de cette instance, générés au premier démarrage.
/etc/sasl2/memcached-sasldb2Base SASL avec les utilisateurs et leurs mots de passe.

Exemple de 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

Codes de sortie et journaux #

Chaque exécution renvoie un code que vous pouvez vérifier avec echo $? — pratique pour enchaîner dans des scripts :

0OKOpération terminée correctement.
1ERRErreur générique non classée. Consultez le journal.
2USAGEArguments ou sous-commande invalides.
64NOMEMCACHEDmemcached n'est pas installé sur cette machine.
65NOSECRETUn identifiant est demandé alors que cette instance ne l'a pas encore généré.
66NOUFWufw n'est pas disponible sur cette machine.

Suivez le service en direct pendant que vous travaillez :

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

Dépannage #

SymptômeCause probableSolution
Vous obtenez NOSECRET (code 65)L'instance n'a pas terminé son premier démarrage, moment où l'identifiant est matérialisé.Vérifiez sudo systemctl status memcached et réessayez.
Vous obtenez NOMEMCACHED (code 64)Le module est installé mais memcached n'est pas sur l'hôte.Vous êtes sur une image autre que celle du produit : installez memcached ou utilisez la bonne AMI.
Beaucoup d'evictions dans statusLe cache est petit pour ce que vous stockez : des éléments sont évincés pour faire de la place.Montez le pourcentage avec optimize --memory-pct ou passez à une instance avec plus de RAM.
Le cache se vide d'un coupLe service a redémarré, et memcached ne persiste rien sur disque.Normal après optimize. Pour appliquer sans redémarrer, utilisez --no-restart.
Le client rejette le certificatIl est auto-signé et propre à chaque instance.Faites-lui confiance dans votre client ou validez son empreinte avec tls show.

Bloqué sur le module Memcached ?

Écrivez-nous avec la sortie de « imaxe <module> status --json » et nous vous répondons rapidement.

Contacter le support