L’utilizzo della memoria è molto maggiore durante una ricostruzione rispetto al normale funzionamento. Sembra che anche il “rebaking” (ri-cottura/ricalcolo) comporti una grande richiesta. Se è così, qualsiasi tipo di monitoraggio regolare non aggiungerebbe molto valore: il monitoraggio sarebbe necessario durante quei picchi, che fortunatamente avvengono quando l’amministratore esegue un’azione specifica.
Quando operavo su una configurazione macchina più piccola e marginale, tenevo aperta una seconda finestra del terminale, connessa via ssh al mio server ed eseguivo
vmstat 5
che fornisce una registrazione dell’utilizzo della memoria mentre fluttua. Osserva la colonna swpd e confrontala con lo spazio di swap configurato. Comunemente il fallimento avviene improvvisamente, non gradualmente, quindi anche osservare le tendenze a breve termine non è di grande aiuto.
Se hai spazio su disco, non c’è alcun danno nell’avere molto swap - la metà della RAM, o anche quanto la RAM. È lì in questo caso per far fronte ai picchi. Non vuoi vedere attività di swapping/paging durante l’uso normale. Ancora una volta, si può usare vmstat 5 5 per ottenere un’istantanea a breve termine dell’attività di paging (nelle colonne si e so)
Ecco un esempio:
# vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 1392140 61200 11632 76432 41 32 117 93 0 1 2 1 97 0 0
1 1 1467220 63416 324 67284 8786 20499 13178 20567 2539 8924 77 13 0 10 0
0 2 1593340 57916 1096 53832 24262 46868 29986 46889 5377 18534 44 22 0 34 0
4 0 1155632 120680 2772 86280 39111 35424 54768 37824 6987 25174 38 27 0 35 0
3 0 1102988 74096 2852 85276 11261 246 12610 271 1879 6365 86 6 0 8 0
Si vede che la colonna swpd ha raggiunto un picco di oltre 1,5G, rispetto ai miei 2,0G configurati. Si vede che l’attività di swapout (so) ha raggiunto il picco nella stessa finestra di 5 secondi, e lo swapin (si) ha raggiunto il picco nella finestra successiva.
(Modifica: vedo che avevo configurato 2,0G di swap perché in precedenza avevo eseguito free:
# free
total used free shared buff/cache available
Mem: 1009140 696504 78544 51784 234092 118436
Swap: 2097144 154628 1942516
si vede anche che all’epoca riuscivo a far funzionare discourse con solo 1G di RAM.)