Gestion et optimisation de la mémoire sur Linux
Quelques notes sur mon analyse et mes optimisations concernant les problèmes de swapping intensif et des solutions possibles pour tenter de libérer du swap et/ou de la RAM.
Analyse
top
Exécuter top
et taper M
pour classer les processus en fonction de leur consommation de mémoire.
free
free -h
Optimisation
Lister les paramètres système liés à la gestion de la mémoire virtuelle
ls /proc/sys/vm
Diminuer la valeur de ces deux paramètres peut diminuer le swapping
- vm.swappiness
- vm.vfs_cache_pressure
Exemples
sysctl vm.swappiness=5
sysctl vm.vfs_cache_pressure=50
Le paramètre vm.vfs_cache_pressure
contrôle la vitesse à laquelle le système libère la mémoire cache d'inodes.
Libérer du swap
Une solution efficace, mais dangereuse, est de démonter/remonter le swap pour le vider. Je dis dangereuse car si la quantité d'espace de swap utilisée est supérieure à la quantité d'espace de RAM libre, cela peut partir en kernel panic sur out of memory.
De manière générale si la quantité de swap utilisée est élevée il vaut mieux s'abstenir de le couper.
En supposant que ce n'est pas le cas
swapoff -a
swapon -a
Libérer le cache de la RAM
Clear PageCache
sync; echo 1 > /proc/sys/vm/drop_caches
Clear dentries and inodes
sync; echo 2 > /proc/sys/vm/drop_caches
Clear pagecache, dentries and inodes
sync; echo 3 > /proc/sys/vm/drop_caches