Analyse memoire, SWAP et Swapiness
Quel processus quelle application swap ? et configuration swapiness
Swappiness :
vm.swappiness = 0 > Le noyau ne va utiliser le swap que pour éviter les erreurs de manque de mémoire.
vm.swappiness = 1 > Noyau version 3.5 et plus: quantité minimale de swap sans le désactiver.
vm.swappiness = 10 > Cette valeur est souvent recommandée quand il y a suffisamment de mémoire dans le système.
vm.swappiness = 60 > La valeur par défaut.
vm.swappiness = 100 > Le noyau va maximiser l'utilisation du swap.
Modifier temporaire de la valeur avec la commande sysctl :
# cat /proc/sys/vm/swappiness # sysctl -w vm.swappiness=1 # cat /proc/sys/vm/swappiness 1
Modification permanente dans le fichier /etc/sysctl.conf :
... vm.swappiness=1.
Visionner les processus qui swap :
for proc in /proc/[0-9]*; do awk '/VmSwap/ { print $2 "\\t'`readlink $proc/exe | awk '{ print $1 }'`'" }' $proc/status; done | sort -n | awk '{ total += $1 ; print $0 } END { print total "\\tTotal" }'
Ce qui donne :
0 /usr/sbin/sshd 0 /usr/share/kibana/node/bin/node 0 /usr/share/kibana/node/bin/node 19916 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 111172 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 131088 Total
java....
Smem :
Analyser rapidement l'utilisation mémoire d'un programme.
# smem -ntkP [j]ava PID User Command Swap USS PSS RSS 3589 0 /usr/bin/python /usr/bin/sm 0 7.6M 7.7M 9.8M 3396 999 /docker-java-home/jre/bin/j 0 107.3M 111.9M 124.4M 31666 999 /docker-java-home/jre/bin/j 115.0M 248.2M 252.8M 265.4M 1691 105 /docker-java-home/jre/bin/j 0 2.4G 2.4G 2.4G 31397 105 /docker-java-home/jre/bin/j 0 2.4G 2.4G 2.4G ------------------------------------------------------------------------------- 5 3 115.0M 5.1G 5.1G 5.2G
Faites un tour ici pour plus d'explication => http://www.linuxpedia.fr/doku.php/expert/analyser_usage_memoire_vive