Potresti trovare utile la risposta di John Nilsson alla mia domanda per eliminare la cache al fine di verificare se ciò è correlato al tuo problema:
sync && echo 1 > /proc/sys/vm/drop_caches
Anche se suppongo che l'unica vera differenza sia 1 contro 3
I contenuti di /proc/meminfo dirti per cosa usa la RAM il kernel.
Puoi utilizzare /proc/sys/vm/vfs_cache_pressure per forzare il kernel a recuperare la memoria utilizzata per le cache relative al filesystem in modo più pigro o impaziente.
Tieni presente che la tua applicazione può trarre vantaggio dall'ottimizzazione di questo parametro solo se esegue poco o nessun I/O su disco.
Potresti voler aumentare vfs_cache_pressure
così come impostare swappiness
a 0
.
In questo modo il kernel recupererà la cache più velocemente, dando ai processi lo stesso o più favore al momento di decidere cosa deve essere impaginato.
Puoi solo vuoi farlo se i processi che ti interessano eseguono pochissimo I/O su disco.
Se un processo legato all'I/O di rete deve eseguire lo swapping per servire le richieste, questo è un problema e la vera soluzione è metterlo su un server meno competitivo.
Con il swappiness
predefinito impostazione, il kernel preferirà quasi sempre mantenere la cache relativa a FS nella memoria reale.
Pertanto, se aumenti la pressione della cache, assicurati di regolare equamente swappiness
.