Vider le Swap et le cache

Il arrive qu'un logiciel prenne involontairement beaucoup de cache et utilise également le swap à cause de ce surplus de cache. Pour remédié à ce problème.

Vider le cache (buffer) au complet

Réalisable avec cette simple commande :

 echo 3 > /proc/sys/vm/drop_caches

Par défaut, la valeur est à 0.

Plus d'infos à cette adresse.

Vérifions qu'il y a eu du changement :

 free -m
 cat /proc/swaps

Vider le swap

rien de plus simple :

 swapoff -a
 swapon -a

Ou de manière précises :

swapon -s
swapoff /dev/sda5
swapon /dev/sda5

Créer son swap

Il peut arriver qu'une application écrite nodejs (par exemple!) ait besoin d'un peu plus de 1Go de mémoire pour être construite. On aura alors besoin en toute urgence d'une swap fait en deux, trois mouvements dont voici la procédure :

dd if=/dev/zero of=/swapfile1 bs=1024 count=1048576
chown root:root /swapfile1
chmod 0600 /swapfile1
mkswap /swapfile1
swapon /swapfile1

Mettre une base en mémoire

Dans le cas d'une grosse application où une partie de celle-ci peut-être mis directement en mémoire. Cela peut grandement augmenter les performances.

mkdir /home/tmp

On enregistre le point de montage dans /etc/fstab :

tmpfs /home/tmp tmpfs defaults,size=32M,uid=mon-utilisateur,gid=mon-groupe 0 0

On créér une tache cron pour sauvegarder de temps en temps les données.

crontab -u mon-utilisateur -l
*/5 * * * *     /usr/bin/rsync -ar /home/kresus/kresus_vram/ /home/kresus/.kresus/

Si l'application à une unité systemd, alors on peut ajouter ces directives qui viendont synchroniser les données sur le disque en mémoire :

Environment=KRESUS_DIR=/home/kresus/kresus_vram
ExecStartPre=/usr/bin/rsync -ar /home/kresus/.kresus/ /home/kresus/kresus_vram/