Por que a troca ocorre no ElastiCache?

2 minuto de leitura
0

Estou vendo um aumento na atividade de troca em minhas instâncias do Amazon ElastiCache. Como resolvo isso?

Breve descrição

O ElastiCache é executado no sistema operacional (SO) Linux. O comportamento de troca é controlado pelo sistema operacional e é influenciado por fatores como versão do SO ou padrões de atividade. É um comportamento esperado que as instâncias experimentem flutuações no uso de troca.

Problemas de troca ocorrem quando não há memória de acesso aleatório (RAM) disponível suficiente quando o sistema está movendo páginas entre o disco e a RAM.

O sistema operacional Linux realoca proativamente as páginas de memória para troca por dois motivos principais:

  • Um nó do ElastiCache está sob pressão de memória
  • O Linux troca a memória acessada com pouca frequência para o disco

Resolução

Um nó do ElastiCache está sob pressão de memória

Se o nó de cache usar mais memória do que a instância tem disponível, o Linux trocará os dados da memória para o disco para liberar espaço de memória para uso. Uma métrica do FreeableMemory CloudWatch igual a zero ou uma métrica SwapUsage maior que a métrica FreeableMemory indica um nó que está sob pressão de memória.

Como oRedis e oMemcached estão em caches de memória, a troca torna seu aplicativo mais lento.

Se você perceber que um nó está trocando devido à pressão da memória, aumente a escala verticalmente para um tipo de nó de cache maior. Caso contrário, defina um parâmetro de memória reservada para o Redis ou um parâmetro de sobrecarga de conexão para o Memcached.

O Linux troca a memória acessada com pouca frequência para o disco

A troca pode ser usada quando um nó do ElastiCache não está sob pressão de memória porque o sistema operacional Linux move proativamente páginas de memória que não são usadas com frequência para troca para aumentar a eficiência da memória. Esse uso é um comportamento normal do kernel e não implica leitura e gravação ativas para troca.

É uma prática recomendada revisar a métrica swapUsage para verificar se a quantidade de troca usada não excede 300 MB.


Informações relacionadas

Quais métricas devo monitorar? (Redis)

Quais métricas devo monitorar? (Memcached)

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos