Lanzador Productos Bitnami Documentaciónimaxe CLI Blog Contacto
imaxe memcached cache v1.1.0

Opera tu cache sin tocar ficheros

Calcula y aplica el tamaño de cache, los hilos y las conexiones que le convienen a tu instancia, gestiona las credenciales SASL y el certificado TLS, y te enseña el estado del servicio en vivo — todo sin editar memcached.conf a mano.

$ imaxe memcached status
Versión
v1.1.0
Subcomandos
9
Config
/etc/imaxe/memcached.yml
Requiere root
Puertos
11211 TLS · 11212 local

Qué hace este módulo #

Memcached se configura con un fichero de texto y un puñado de flags: cuánta RAM dedicarle, cuántos hilos, cuántas conexiones. Acertar con esos números depende del tamaño de la instancia, y equivocarse sale caro — te quedas corto de cache o te comes la RAM que necesita el sistema.

El módulo memcached se encarga de eso y de todo lo que rodea al servicio: calcula el tuning a partir de la RAM real de la máquina, gestiona las credenciales SASL (obligatorias en esta imagen), mantiene el certificado TLS que se genera en el primer arranque —nunca se hornea en la AMI— y te da el estado en vivo con las estadísticas del servicio.

Antes de empezar

Los comandos que leen credenciales o tocan la configuración necesitan root (usa sudo). Ojo con optimize: al aplicar valores nuevos se reinicia el servicio, y un reinicio vacía la cache. Si prefieres aplicar y reiniciar tú, usa --no-restart.

Guía rápidatareas paso a paso

Guía rápida #

Elige lo que quieres hacer. Cada receta trae el comando ya escrito — solo cópialo y pulsa Copiar.

1

Ver el estado del servicio

Comprueba de un vistazo que la cache está sana y qué tuning tiene aplicado.

Conéctate por SSH a tu instancia con el usuario ubuntu.

Pide el estado: verás en qué puertos escucha, si TLS y SASL están activos, el tuning aplicado y las estadísticas en vivo (memoria en uso, elementos, aciertos y fallos):

terminal
$ sudo imaxe memcached status

¿Lo quieres para un panel o un script? Añade --json:

terminal
$ sudo imaxe memcached status --json
Si hits crece y evictions se mantiene bajo, la cache está bien dimensionada. Si las expulsiones se disparan, salta a Ajustar el tamaño.
2

Conectarme a la cache

Consigue el usuario, la password y el puerto para apuntar tu aplicación.

Esta imagen exige SASL: no hay acceso anónimo. Pide las credenciales de esta instancia (la password sale enmascarada):

terminal
$ sudo imaxe memcached credentials

Cuando vayas a copiarla de verdad, muéstrala en claro:

terminal
$ sudo imaxe memcached credentials --show-password
El puerto 11211 va con TLS; el 11212 es texto plano y solo escucha en loopback, para las herramientas del propio sistema. No abras el 11211 a Internet: ábrelo al CIDR de tu VPC.
3

Ajustar el tamaño de la cache

Recalcula memoria, hilos y conexiones para el tamaño real de la máquina.

Mira primero qué valores saldrían, sin tocar nada:

terminal
$ sudo imaxe memcached optimize --show

Si te convencen, aplícalos. El servicio se reinicia y la cache se vacía:

terminal
$ sudo imaxe memcached optimize

¿Quieres más cache y menos margen para el sistema? Sube el porcentaje de RAM:

terminal
$ sudo imaxe memcached optimize --memory-pct 75
Con --dry-run ves además el bloque de configuración que se escribiría. Y con --no-restart se aplica sin reiniciar: los valores nuevos entran en el siguiente arranque.
4

Dar de alta usuarios SASL

Crea, rota o borra las credenciales que usan tus aplicaciones.

Lista los usuarios que existen en la base SASL:

terminal
$ sudo imaxe memcached users list

Da de alta uno por aplicación, con password aleatoria:

terminal
$ sudo imaxe memcached users add app1

¿Password concreta? Pásala por la entrada estándar para que no quede en ps ni en el historial del shell:

terminal
$ sudo imaxe memcached users add app1 --stdin
Para cambiar la password de un usuario, imaxe memcached users rotate <usuario>. Sin nombre rota la del usuario del producto.
5

Revisar el certificado TLS

Comprueba la caducidad y renueva el certificado de la instancia.

El certificado se genera en el primer arranque de cada instancia, así que nunca se comparte entre máquinas. Mira el que está en uso:

terminal
$ sudo imaxe memcached tls show

Renuévalo cuando quieras, aunque el actual siga siendo válido:

terminal
$ sudo imaxe memcached tls renew --force
Es un certificado autofirmado con validez larga. Tu cliente tendrá que confiar en él o comprobar su huella SHA-256, que es la que imprime tls show.
¿No arranca o no encuentra la credencial?

La credencial y el certificado los materializa instance-setup en cada arranque, llamado por systemd. Si un comando responde con el código 65, esa instancia no ha completado su primer arranque: revisa sudo systemctl status memcached antes de tocar nada.

Referencia CLIcomandos, flags y ficheros

Sinopsis #

uso
imaxe memcached <subcomando> [flags]

Casi todos los subcomandos necesitan root (usa sudo) porque leen la base SASL, el certificado o la configuración del servicio. Añade --json a status, credentials, users list o tls show para salida legible por máquina.

Subcomandos #

SubcomandoQué haceFlags relevantes
optimizeCalcula y aplica el mejor tamaño de cache, hilos y conexiones para esta instancia.--memory-pct --dry-run --show --no-restart
statusEstado del servicio: escuchas, TLS, SASL, tuning aplicado y estadísticas en vivo.--json
credentialsMuestra las credenciales SASL de esta instancia y cómo conectarse.--json --show-password
usersGestiona los usuarios SASL: list, add, rotate y delete.--password --stdin --json
set-passwordCambia la password del usuario SASL del producto. Atajo de users rotate.--random --stdin
open-portAbre el puerto de memcached en el cortafuegos del host (ufw).--cidr --json
close-portCierra el puerto en el cortafuegos del host y retira las reglas que hubiera.--json
tlsCertificado TLS de esta instancia: show y renew.--force --json
instance-setupPrepara la instancia antes de arrancar el servicio. Lo llama systemd en cada arranque.--bake

Argumentos y flags #

FlagTipoPor defectoDescripción
--memory-pctint60En optimize: porcentaje de la RAM utilizable que se dedica a la cache.
--reserve-mem-mbint512En optimize: RAM en MB que no se toca, reservada para el sistema y el resto de servicios.
--threadsint0En optimize: hilos de proceso. 0 los deriva del número de CPUs.
--max-connectionsint0En optimize: conexiones simultáneas. 0 las deriva del tamaño de la cache.
--dry-runboolfalseEn optimize: no escribe nada; muestra los valores y el bloque de configuración que se aplicaría.
--showboolfalseEn optimize: solo imprime los valores calculados.
--no-restartboolfalseEn optimize: escribe la configuración pero no reinicia el servicio. Un reinicio vacía la cache.
--passwordstringEn users add/rotate: password concreta. Si se omite, se genera aleatoria.
--stdinboolfalseEn users add/rotate: lee la password de la entrada estándar, para que no aparezca en ps ni en el historial.
--show-passwordboolfalseEn credentials: imprime la password en claro. Por defecto se enmascara.
--forceboolfalseEn tls renew: regenera aunque el certificado actual sea válido y de esta instancia.
--randomboolfalseEn set-password: genera una password fuerte y la imprime una sola vez.
--cidrstringEn open-port: limita la regla a ese origen. Sin él, se permite cualquier origen.
--jsonboolfalseEmite el resultado como JSON estructurado en stdout.

Ficheros y rutas #

RutaContenido
/etc/imaxe/memcached.ymlConfiguración del módulo: servicio, rutas, y los valores por defecto de optimize, TLS y SASL.
/etc/memcached.confConfiguración de memcached. La escribe optimize: no la edites a mano.
/etc/systemd/system/memcached.service.d/Drop-in de systemd con los parámetros de arranque que aplica el módulo.
/etc/memcached/tls/Certificado y clave privada de esta instancia, generados en el primer arranque.
/etc/sasl2/memcached-sasldb2Base de datos SASL con los usuarios y sus passwords.

Ejemplo 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

Códigos de salida y logs #

Cada ejecución devuelve un código que puedes comprobar con echo $? — útil para encadenar en scripts:

0OKOperación completada correctamente.
1ERRError genérico no clasificado. Revisa el log.
2USAGEArgumentos o subcomando inválidos.
64NOMEMCACHEDmemcached no está instalado en esta máquina.
65NOSECRETSe pide una credencial que esta instancia todavía no ha generado.
66NOUFWufw no está disponible en esta máquina.

Sigue el servicio en vivo mientras operas:

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

Resolución de problemas #

SíntomaCausa probableSolución
Sale NOSECRET (código 65)La instancia no ha completado su primer arranque, que es cuando se materializa la credencial.Comprueba sudo systemctl status memcached y vuelve a intentarlo.
Sale NOMEMCACHED (código 64)El módulo está instalado pero memcached no está en el host.Estás en una imagen que no es la del producto: instala memcached o usa la AMI correcta.
Muchas evictions en statusLa cache es pequeña para lo que guardas: se expulsan elementos para hacer sitio.Sube el porcentaje con optimize --memory-pct o cambia a una instancia con más RAM.
La cache aparece vacía de golpeEl servicio se ha reiniciado, y memcached no persiste nada en disco.Normal tras optimize. Para aplicar sin reiniciar, usa --no-restart.
El cliente rechaza el certificadoEs autofirmado y propio de cada instancia.Confía en él en tu cliente o valida su huella con tls show.

¿Te atascaste con el módulo Memcached?

Escríbenos con la salida de «imaxe <módulo> status --json» y te respondemos rápido.

Contactar con soporte