Desidero risolvere il problema dell'aumento dell'attività di scambio nelle mie istanze Amazon ElastiCache.
Breve descrizione
ElastiCache funziona su Linux. I fattori del sistema operativo (OS), come la versione e i modelli di attività, determinano il suo comportamento per quanto riguarda gli scambi. La fluttuazione nell'utilizzo degli scambi è un comportamento previsto. Se la RAM disponibile non è sufficiente quando il sistema sposta le pagine tra disco e RAM, si verificano problemi di scambio.
Di seguito sono riportati i motivi che fanno sì che il sistema operativo Linux provveda a rilocare le pagine di memoria effettuando scambi:
- Un nodo ElastiCache è sotto pressione in termini di memoria.
- Linux trasferisce su disco la memoria a cui si accede raramente.
Risoluzione
Un nodo ElastiCache è sotto pressione in termini di memoria
Se il nodo di cache utilizza più memoria di quella disponibile dell'istanza, Linux scambia i dati dalla memoria al disco per liberare spazio. Per determinare se un nodo è sotto pressione, consulta i parametri di Amazon CloudWatch FreeableMemory e SwapUsage.
Un valore zero nel parametro FreeableMemory indica che un nodo è sotto pressione in termini di memoria. Per il parametro SwapUsage, un valore maggiore di quello presente in FreeableMemory indica che un nodo è sotto pressione in termini di memoria.
Poiché Redis e Memcached sono in cache di memoria, l'attività di scambio rallenta l'applicazione. Se un nodo sta effettuando scambi a causa di pressioni di memoria, aumenta verticalmente fino a passare a un tipo di nodo con una cache più grande. Puoi anche impostare un parametro reserved memory per Redis o un parametro connection overhead per Memcached.
Linux trasferisce su disco la memoria a cui si accede raramente
Linux potrebbe utilizzare gli scambi quando un nodo ElastiCache non è sotto pressione in termini di memoria. Per aumentare l'efficienza della memoria, Linux scambia su disco le pagine di memoria utilizzate raramente. Questo è un normale comportamento del kernel e non implica una lettura e una scrittura attive per lo scambio. È consigliabile esaminare il parametro SwapUsage per verificare se la quantità di scambi utilizzata non supera i 300 MB.
Informazioni correlate
Host-level metrics
Which metrics should I monitor?(Amazon ElastiCache per Redis)
Which metrics should I monitor?(Amazon ElastiCache per Memcached)