Improvviso picco di utilizzo della memoria che non scende

Circa una settimana fa ho osservato il grafico DO relativo alla memoria e sono rimasto piuttosto sorpreso:

È rimasto stabile per oltre un anno. Ho arrestato e riavviato il container, e l’utilizzo è tornato a scendere, ma nelle ultime ore è risalito al livello precedente.

Qual è la causa? I comandi top e ps indicano che i principali responsabili sono i processi postgres. Ecco le informazioni fornite da free:

$ free -mh
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.5Gi       142Mi       2.3Gi       5.1Gi       2.6Gi

Non riesco nemmeno ad accedere al droplet tramite la console di DO. Si blocca a causa di OOM. Per fortuna ho installato le chiavi SSH e posso accedere dal mio laptop personale, quindi al momento riesco ancora a raggiungere il droplet.

Cosa dovrei fare? Sono a budget molto limitato, quindi il ridimensionamento del droplet è l’ultima opzione; mi chiedo se ci sia qualcos’altro da fare. Sembra una cosa completamente improvvisa. Sto eseguendo la versione 2.7.0.beta5.

Cosa è cambiato di recente, se mai qualcosa? Hai eseguito un aggiornamento?

L’unico salto verticale nei miei grafici negli ultimi 14 giorni si è verificato anch’esso l’11 maggio, ma è stato meno drastico, passando dall’89% al 78%. Forse abbiamo effettuato un aggiornamento allora?

Sembra legato all’host, per me l’uso della memoria è diminuito. L’aggiornamento della versione a beta9 è stato aggiunto il 10, quindi probabilmente ho eseguito una ricompilazione in quel periodo (e ho scaricato una nuova immagine come mostra l’uso del disco), non ricordo di aver aggiornato l’host, ma potrebbe essere successo.


Non hai lo swap?

No, sto eseguendo la versione 2.7beta5 da un po’ di tempo. Non abbiamo apportato modifiche da un po’.

Il motivo per cui non sono sull’ultima versione è che ci sono state preoccupazioni con il mio sviluppatore front-end dopo l’ultimo aggiornamento che abbiamo effettuato, poiché ha introdotto alcune modifiche che hanno rotto il suo lavoro di styling (sono solo un sysadmin, non so nulla di queste cose). Penso che questi problemi siano stati risolti in Discourse nel frattempo, ma stavamo aspettando la prossima versione minore per aggiornare.

Cosa potrebbe causare questo sull’host?

Ridimensionare il droplet raddoppia la nostra fatturazione, quindi non vorrei farlo, ma potrebbe essere la soluzione più semplice.

La swap è quella predefinita, non sono sicuro.

:thinking: e cosa dice /sidekiq?

Se aggiungi lo swap, eviterai gli OOM. Non vuoi gli OOM e non vuoi un’attività di paging eccessiva, altrimenti l’aumento dell’utilizzo della memoria potrebbe o meno essere importante. (Potrebbe essere interessante, ma è un’altra questione.)

Consiglio di eseguire
vmstat 5 5
o un comando simile per vedere com’è l’attività di paging.

Inoltre,
free -h
è più utile di
free -mh
perché conta quanto swap ti è rimasto.