Outils pour utilisateurs

Outils du site


linux:memory (lu 59240 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:memory [02-04-2017 10:57]
edmc73
linux:memory [19-08-2020 14:54] (Version actuelle)
edmc73 [Quels fichiers en RAM Cache]
Ligne 19: Ligne 19:
 Dans mon cas j'ai décidé de mettre swappiness à , la commande suivante applique cette valeur instantanément  Dans mon cas j'ai décidé de mettre swappiness à , la commande suivante applique cette valeur instantanément 
   sysctl -w vm.swappiness=5   sysctl -w vm.swappiness=5
-Pour quelle soit prise en compte lors du reboot de la machine, il faut rajouter la ligne suivante dans **/etc/sysctl.conf**+Pour quelle soit prise en compte lors du reboot de la machine, il faut créer un fichier dans **/etc/sysctl.d** 
 +  vi /etc/sysctl.d/swappiness.conf 
 +et mettez dans ce fichier
   vm.swappiness=5   vm.swappiness=5
  
Ligne 77: Ligne 79:
 Commande pour vider le cache de la mémoire Commande pour vider le cache de la mémoire
   echo 3 > /proc/sys/vm/drop_caches   echo 3 > /proc/sys/vm/drop_caches
 +
 +===== Qui utilise le swap =====
 +
 +Ligne de commande à adapter si besoin
 +  for file in /proc/*/status ; do awk '/^(VmSwap|Pid|Name)/{printf "%30s%s",$2,$3}END{ print ""}' $file; done | sort -k3 -h
 +Avec des tabulations comme séparateur
 +  for file in /proc/*/status ; do awk '/^(VmSwap|Pid|Name)/{printf $2 "" $3 "\t"}END{ print ""}' $file; done | sort -t$'\t' -k3 -h
 +
 +Une variante qui permet de récupérer l'Uid et de le résoudre pour avoir le nom de l'utilisateur
 +  for file in /proc/*/status ; do awk '/^(VmSwap|Uid|Pid|Name)/{if($1=="Uid:"){ system("echo -n $(id -nu " $2")"); printf "\t";} else printf $2 "" $3 "\t"}END{ print ""}' $file; done | sort -t$'\t' -k4 -h
 +
 +===== Quels fichiers en RAM Cache =====
 +
 +Utilisez ce script => https://github.com/hoytech/vmtouch
 +
 +**vmtouch** permet d'afficher si un fichier ou plusieurs sont stocké en ram. Il permet aussi de forcer un fichier à se mettre en ram plus tout un tas d'options => https://github.com/hoytech/vmtouch/blob/master/vmtouch.pod
 +
 +
 +Exemple, ici on voit que le fichier n'est pas en cache
 +
 +<code>
 +[root@xt ~]# vmtouch -v /usr/local/var/orca/procallator.cfg
 +/usr/local/var/orca/procallator.cfg
 +[     ] 0/5
 +
 +           Files: 1
 +     Directories: 0
 +  Resident Pages: 0/5  0/20K  0%
 +         Elapsed: 0.000215 seconds
 +</code>
 +
 +Maintenant, on peut le forcer à se mettre en cache
 +<code>
 +[root@xt ~]# vmtouch -vt /usr/local/var/orca/procallator.cfg
 +/usr/local/var/orca/procallator.cfg
 +[OOOOO] 5/5
 +
 +           Files: 1
 +     Directories: 0
 +   Touched Pages: 5 (20K)
 +         Elapsed: 0.005313 seconds
 +</code>
 +
 +On vérifie
 +<code>
 +[root@xt ~]# vmtouch -v /usr/local/var/orca/procallator.cfg
 +/usr/local/var/orca/procallator.cfg
 +[OOOOO] 5/5
 +
 +           Files: 1
 +     Directories: 0
 +  Resident Pages: 5/5  20K/20K  100%
 +         Elapsed: 0.000241 seconds
 +</code>
 +
 +Commande pour afficher la liste des fichiers d'un répertoire qui sont en RAM
 +  vmtouch -v * | grep -B 1 "^.\[.*[^ 0]/"
 +Ou au contraire qui ne sont pas en RAM
 +  vmtouch -v * | grep -B 1 "^.\[.* 0/"
 +
 +
 +
linux/memory.1491123477.txt.gz · Dernière modification: 02-04-2017 10:57 de edmc73