Perché si verifica lo scambio in ElastiCache?

2 minuti di lettura
0

Sto riscontrando un aumento dell'attività di scambio nelle mie istanze Amazon ElastiCache Come posso risolvere questo problema?

Breve descrizione

ElastiCache viene eseguito sul sistema operativo Linux. Il comportamento di scambio è controllato dal sistema operativo ed è influenzato da fattori quali la versione del sistema operativo o i modelli di attività. È un comportamento previsto che le istanze subiscano fluttuazioni nell'utilizzo degli scambi.

I problemi di scambio si verificano quando non c'è abbastanza RAM (Random Access Memory) disponibile quando il sistema sta spostando le pagine tra il disco e la RAM.

Il sistema operativo Linux riposiziona in modo proattivo le pagine di memoria da scambiare per due motivi principali:

  • Un nodo ElastiCache è sotto pressione di memoria
  • Linux scambia su disco la memoria a cui si accede raramente

Risoluzione

Un nodo ElastiCache è sotto pressione di memoria

Se il nodo di cache utilizza più memoria di quella disponibile nell'istanza, Linux scambia i dati dalla memoria al disco per liberare spazio di memoria per l'utilizzo. Un parametro CloudWatch di FreeableMemory uguale a zero o un parametro SwapUsage maggiore del parametro FreeableMemory indica un nodo sotto pressione di memoria.

Poiché sia Redis che Memcached si trovano nelle cache di memoria, lo scambio rallenta l'applicazione.

Se noti che un nodo si sta scambiando a causa della pressione della memoria, scalare fino a un tipo di nodo di cache più grande. In caso contrario, imposta un parametro di memoria riservata per Redis o un parametro di sovraccarico di connessione per Memcached.

Linux scambia su disco la memoria a cui si accede raramente

Lo scambio può essere utilizzato quando un nodo ElastiCache non è sotto pressione di memoria perché il sistema operativo Linux sposta in modo proattivo le pagine di memoria che non vengono utilizzate frequentemente per lo scambio per aumentare l'efficienza della memoria. Questo utilizzo è un normale comportamento del kernel e non implica una lettura e una scrittura attive per lo scambio.

È consigliabile rivedere il parametroSwapUsage per verificare che la quantità di scambio utilizzata non superi i 300 MB.


Informazioni correlate

Quali parametri devo monitorare? (Redis)

Quali parametri devo monitorare? (Memcached)

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa