La risposta alla domanda principale è più in basso, ma prima un avvertimento riguardante il suggerimento di Mirra:
Stai attento con questo:
In :/proc/sys/vm/overcommit_memory provo a metterne 2.
In tal caso, anche quando la memoria fisica è disponibile, tutti i processi che richiedono memoria dal sistema operativo quando vmcom maggiore di vmlim riceveranno errori (Ho molti errori e fallimenti con applicazioni di sistema di base come compiz). E a causa di:
vmlim =SWAP_size + 0,5 * RAM_size.
dove 0,5 (50%) è il valore predefinito per il parametro /proc/sys/vm/overcommit_ratio puoi facilmente ottenere molti errori come me.
Rispondi alla domanda principale:è meglio ripristinare le modifiche nel parametro overcommit_memory al valore predefinito (0 per me (Ubuntu 12.04 LTS), ma può essere 1 per altri sistemi operativi). Secondo l'ottimo articolo possiamo calcolare la memoria effettivamente utilizzata dai processi:
Memoria utilizzata ~ tot - (cache + buff + gratuita) ~ 23,6 G - ( 6,7 G + 0,067 G + 0,136 G) ~ 16,7 G
Quindi solo 16,7 G sono effettivamente utilizzati dai processi (da 23,6 G di RAM installata) e la linea rossa in cima all'output può essere ignorata.