Lançador Produtos Bitnami Documentaçãoimaxe CLI Blog Contacto
imaxe memcached cache v1.1.0

Opere a sua cache sem mexer em ficheiros

Calcula e aplica o tamanho da cache, as threads e as ligações adequadas à sua instância, gere as credenciais SASL e o certificado TLS, e mostra o estado do serviço ao vivo — tudo sem editar memcached.conf à mão.

$ imaxe memcached status
Versão
v1.1.0
Subcomandos
9
Config
/etc/imaxe/memcached.yml
Requer root
sim
Portas
11211 TLS · 11212 local

O que faz este módulo #

O memcached configura-se com um ficheiro de texto e um punhado de flags: quanta RAM lhe dar, quantas threads, quantas ligações. Acertar nesses números depende do tamanho da instância, e errar sai caro — ou fica sem cache suficiente ou come a RAM de que o sistema precisa.

O módulo memcached trata disso e de tudo o que rodeia o serviço: calcula o tuning a partir da RAM real da máquina, gere as credenciais SASL (obrigatórias nesta imagem), mantém o certificado TLS gerado no primeiro arranque —nunca embutido na AMI— e dá-lhe o estado ao vivo com as estatísticas do serviço.

Antes de começar

Os comandos que leem credenciais ou mexem na configuração precisam de root (use sudo). Atenção ao optimize: aplicar valores novos reinicia o serviço, e um reinício esvazia a cache. Se preferir reiniciar você mesmo, use --no-restart.

Guia rápidotarefas passo a passo

Guia rápido #

Escolha o que quer fazer. Cada receita traz o comando já escrito — copie-o e carregue em Copiar.

1

Ver o estado do serviço

Confirme de relance que a cache está saudável e que tuning tem aplicado.

Ligue-se por SSH à sua instância com o utilizador ubuntu.

Peça o estado: verá em que portas escuta, se TLS e SASL estão activos, o tuning aplicado e as estatísticas ao vivo (memória em uso, elementos, acertos e falhas):

terminal
$ sudo imaxe memcached status

Quer isto para um painel ou um script? Junte --json:

terminal
$ sudo imaxe memcached status --json
Se hits cresce e evictions se mantém baixo, a cache está bem dimensionada. Se as expulsões dispararem, salte para Ajustar o tamanho.
2

Ligar-me à cache

Obtenha o utilizador, a palavra-passe e a porta para apontar a sua aplicação.

Esta imagem exige SASL: não há acesso anónimo. Peça as credenciais desta instância (a palavra-passe sai mascarada):

terminal
$ sudo imaxe memcached credentials

Quando a for copiar a sério, mostre-a em claro:

terminal
$ sudo imaxe memcached credentials --show-password
A porta 11211 fala TLS; a 11212 é texto simples e só escuta em loopback, para as ferramentas do próprio sistema. Não abra a 11211 à Internet: abra-a ao CIDR da sua VPC.
3

Ajustar o tamanho da cache

Recalcule memória, threads e ligações para o tamanho real da máquina.

Veja primeiro que valores sairiam, sem mexer em nada:

terminal
$ sudo imaxe memcached optimize --show

Se o convencerem, aplique-os. O serviço reinicia e a cache esvazia-se:

terminal
$ sudo imaxe memcached optimize

Quer mais cache e menos margem para o sistema? Suba a percentagem de RAM:

terminal
$ sudo imaxe memcached optimize --memory-pct 75
Com --dry-run vê também o bloco de configuração que seria escrito. E com --no-restart aplica-se sem reiniciar: os valores novos entram no arranque seguinte.
4

Criar utilizadores SASL

Crie, rode ou apague as credenciais que as suas aplicações usam.

Liste os utilizadores que existem na base SASL:

terminal
$ sudo imaxe memcached users list

Crie um por aplicação, com palavra-passe aleatória:

terminal
$ sudo imaxe memcached users add app1

Palavra-passe concreta? Passe-a pela entrada padrão para que não fique no ps nem no histórico:

terminal
$ sudo imaxe memcached users add app1 --stdin
Para mudar a palavra-passe de um utilizador: imaxe memcached users rotate <utilizador>. Sem nome, roda a do utilizador do produto.
5

Rever o certificado TLS

Verifique a validade e renove o certificado da instância.

O certificado é gerado no primeiro arranque de cada instância, por isso nunca é partilhado entre máquinas. Veja o que está em uso:

terminal
$ sudo imaxe memcached tls show

Renove-o quando quiser, mesmo que o actual continue válido:

terminal
$ sudo imaxe memcached tls renew --force
É um certificado autoassinado com validade longa. O seu cliente terá de confiar nele ou verificar a impressão digital SHA-256, a que o tls show imprime.
Não arranca, ou não encontra a credencial?

A credencial e o certificado são materializados pelo instance-setup em cada arranque, chamado pelo systemd. Se um comando responder com o código 65, essa instância não completou o primeiro arranque: verifique sudo systemctl status memcached antes de mexer em mais nada.

Referência CLIcomandos, flags e ficheiros

Sinopse #

uso
imaxe memcached <subcomando> [flags]

Quase todos os subcomandos precisam de root (use sudo) porque leem a base SASL, o certificado ou a configuração do serviço. Junte --json a status, credentials, users list ou tls show para saída legível por máquina.

Subcomandos #

SubcomandoO que fazFlags relevantes
optimizeCalcula e aplica o melhor tamanho de cache, threads e ligações para esta instância.--memory-pct --dry-run --show --no-restart
statusEstado do serviço: escutas, TLS, SASL, tuning aplicado e estatísticas ao vivo.--json
credentialsMostra as credenciais SASL desta instância e como ligar-se.--json --show-password
usersGere os utilizadores SASL: list, add, rotate e delete.--password --stdin --json
set-passwordAltera a password do utilizador SASL do produto. Atalho de users rotate.--random --stdin
open-portAbre a porta do memcached na firewall do host (ufw).--cidr --json
close-portFecha a porta na firewall do host e remove as regras existentes.--json
tlsCertificado TLS desta instância: show e renew.--force --json
instance-setupPrepara a instância antes de arrancar o serviço. É chamado pelo systemd em cada arranque.--bake

Argumentos e flags #

FlagTipoPor omissãoDescrição
--memory-pctint60Em optimize: percentagem da RAM utilizável dedicada à cache.
--reserve-mem-mbint512Em optimize: RAM em MB que não se toca, reservada ao sistema e aos restantes serviços.
--threadsint0Em optimize: threads de trabalho. 0 deriva-as do número de CPUs.
--max-connectionsint0Em optimize: ligações simultâneas. 0 deriva-as do tamanho da cache.
--dry-runboolfalseEm optimize: não escreve nada; mostra os valores e o bloco de configuração que seria aplicado.
--showboolfalseEm optimize: só imprime os valores calculados.
--no-restartboolfalseEm optimize: escreve a configuração mas não reinicia o serviço. Um reinício esvazia a cache.
--passwordstringEm users add/rotate: palavra-passe concreta. Se for omitida, gera-se uma aleatória.
--stdinboolfalseEm users add/rotate: lê a palavra-passe da entrada padrão, para que não apareça no ps nem no histórico.
--show-passwordboolfalseEm credentials: imprime a palavra-passe em claro. Por omissão é mascarada.
--forceboolfalseEm tls renew: regenera mesmo que o certificado actual seja válido e desta instância.
--randomboolfalseEm set-password: gera uma password forte e imprime-a uma única vez.
--cidrstringEm open-port: limita a regra a essa origem. Sem ele, qualquer origem é permitida.
--jsonboolfalseEmite o resultado como JSON estruturado em stdout.

Ficheiros e caminhos #

CaminhoConteúdo
/etc/imaxe/memcached.ymlConfiguração do módulo: serviço, caminhos e os valores por omissão de optimize, TLS e SASL.
/etc/memcached.confConfiguração do memcached. É escrita pelo optimize: não a edite à mão.
/etc/systemd/system/memcached.service.d/Drop-in do systemd com os parâmetros de arranque que o módulo aplica.
/etc/memcached/tls/Certificado e chave privada desta instância, gerados no primeiro arranque.
/etc/sasl2/memcached-sasldb2Base de dados SASL com os utilizadores e as suas palavras-passe.

Exemplo 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 saída e registos #

Cada execução devolve um código que pode verificar com echo $? — útil para encadear em scripts:

0OKOperação concluída correctamente.
1ERRErro genérico não classificado. Consulte o registo.
2USAGEArgumentos ou subcomando inválidos.
64NOMEMCACHEDO memcached não está instalado nesta máquina.
65NOSECRETPede-se uma credencial que esta instância ainda não gerou.
66NOUFWO ufw não está disponível nesta máquina.

Siga o serviço ao vivo enquanto trabalha:

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

Resolução de problemas #

SintomaCausa provávelSolução
Sai NOSECRET (código 65)A instância não completou o primeiro arranque, que é quando a credencial se materializa.Verifique sudo systemctl status memcached e tente de novo.
Sai NOMEMCACHED (código 64)O módulo está instalado mas o memcached não está no host.Está numa imagem que não é a do produto: instale o memcached ou use a AMI correcta.
Muitas evictions no statusA cache é pequena para o que guarda: expulsam-se elementos para abrir espaço.Suba a percentagem com optimize --memory-pct ou mude para uma instância com mais RAM.
A cache aparece vazia de repenteO serviço reiniciou, e o memcached não persiste nada em disco.Normal depois de optimize. Para aplicar sem reiniciar, use --no-restart.
O cliente rejeita o certificadoÉ autoassinado e próprio de cada instância.Confie nele no seu cliente ou valide a impressão digital com tls show.

Ficou bloqueado com o módulo Memcached?

Escreva-nos com a saída de «imaxe <module> status --json» e respondemos rapidamente.

Contactar o suporte