March 12 2024, 09:00#

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