
A loja devolve 500 e o var/log/exception.log enche de “OOM command not allowed when used memory > ‘maxmemory'”. O Magento não tem culpa: o Redis encheu e está configurado para recusar escrita nova em vez de jogar fora chave velha. São dois ajustes, um na política de despejo e outro na separação dos bancos.
redis-cli info memory | grep -E 'used_memory_human|maxmemory_human|maxmemory_policy'
redis-cli info keyspace Se o used_memory bateu no maxmemory e a policy aparece como noeviction, achamos o culpado: assim o Redis lotado responde erro em todo SET, e o Magento traduz isso em página branca. Troque para allkeys-lru, que descarta a chave usada há mais tempo:
redis-cli config set maxmemory-policy allkeys-lru
redis-cli config rewrite
redis-cli config get maxmemory O config set vale na hora e o config rewrite grava no redis.conf que a instância carregou, sem reiniciar nada — de propósito: reiniciar o Redis que guarda sessão desloga todo mundo e esvazia carrinho no meio do expediente. Veja também o maxmemory: em 0 o Redis cresce até o OOM killer do kernel comer o processo.
bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-db=0
bin/magento setup:config:set --page-cache=redis --page-cache-redis-db=1
bin/magento setup:config:set --session-save=redis --session-save-redis-db=2
bin/magento cache:flush Os três reescrevem o app/etc/env.php, então guarde uma cópia dele antes. Compartilhar o banco 0 é o erro clássico: o full page cache cresce feito bicho e um cache:flush apaga a sessão de todo mundo junto. Com bancos separados você limpa um sem encostar no outro — o flush ainda derruba o FPC, então conte uns minutos de site lento.
Bancos separados dividem a mesma memória da instância, e o allkeys-lru não respeita fronteira de banco: num pico ele pode descartar sessão de cliente que estava no meio do checkout. Em loja com movimento eu subo uma segunda instância na porta 6380 só para sessão, com volatile-lru e maxmemory folgado, e aponto o –session-save-redis-port para ela.
Se travou nisso e precisa de ajuda, me chama aqui.
VPS de 2 GB onde o mysqld morre de madrugada e o site volta com erro de conexão. Como confirmar…
Regex com cinco parênteses e ninguém lembra se a data é $matches[2] ou $matches[3]. Nomeie os grupos e leia o…
Erro The consumer isn't authorized to access resources ao chamar a REST do Magento 2.4.8? Ative a integração, libere os…
Bots batendo centenas de POST por minuto no login derrubam a CPU. Configure limit_req_zone no nginx e devolva 429 antes…
Seu access.log guarda o IP inteiro dos visitantes há meses sem necessidade. Mascare o último octeto com map e log_format…
A observação do pedido chegou com ordem embutida para gerar cupom. Delimite o texto do cliente e trate a resposta…