Rebake fallisce: come diagnosticare e risolvere?

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.)

1 Mi Piace