Ecco qualcosa che ho scritto in precedenza:
In particolare
Così com’è, il kernel rifiuterà le allocazioni che non può soddisfare. Con questa modifica, accetterà tali allocazioni e il fallimento potrebbe essere evitato, o potrebbe verificarsi in seguito, quando l’allocazione diventa utilizzo.
Se la somma di RAM e swap è sufficientemente grande, non sarà mai necessario modificare questa impostazione. Se la somma non è grande, modificarla potrebbe aiutare.
Anche
È aumentare la quantità di memoria virtuale disponibile. (Cioè, la somma di RAM e swap.) Se esaurisci la RAM, inizi ad avere problemi di prestazioni. Ma se esaurisci la memoria virtuale, i processi non si avvieranno o moriranno o verranno terminati. Diventa brutale.
Coloro che hanno poca RAM e poco disco potrebbero non essere liberi di aggiungere molta swap, ma 2G sembra essere un buon minimo. (Se avessi 16G di RAM potresti non aver bisogno di alcuna swap, ma questa è un’altra storia. È la somma delle due che conta, quando il problema è che le cose falliscono.)
Per quanto riguarda la resistenza, penso che sia dovuta alla percezione che questa modifica vada a beneficio di redis e la maggior parte delle persone non ne avrà bisogno.
Modifica: questo thread recente è forse un caso emblematico, in cui un’istanza di piccole dimensioni ha esaurito la memoria e non aveva l’overcommit impostato. Ma non sappiamo se l’impostazione dell’overcommit avrebbe risolto questo problema: la persona è passata a 8G di RAM.