GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je savoir quel processus utilise swap?

Amélioration de la commande cyberciti.biz pour afficher une réponse plus concise :

(echo "COMM PID SWAP"; for file in /proc/*/status ; do awk '/^Pid|VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | grep kB | grep -wv "0 kB" | sort -k 3 -n -r) | column -t

Un exemple de sortie :

COMM             PID    SWAP  
dockerd          662    2736  kB
skypeforlinux    26865  1320  kB
NetworkManager   303    1112  kB
slim             392    1028  kB
redis-server     350    204   kB

À partir d'ici :

[a] /proc/meminfo - Ce fichier rapporte des statistiques sur l'utilisation de la mémoire sur le système. Il est utilisé par free pour signaler la quantité de mémoire libre et utilisée (à la fois physique et d'échange) sur le système ainsi que la mémoire partagée et les tampons utilisés par le noyau. Vous pouvez également utiliser gratuitement vmstat et d'autres outils pour trouver les mêmes informations.

[b]/proc/${PID}/smaps, /proc/${PID}/status et /proc/${PID}/stat  :Utilisez ces fichiers pour trouver des informations sur la mémoire, les pages et le swap utilisés par chaque processus à l'aide de son PID.

[c] smem - Cette commande (script python) signale l'utilisation de la mémoire avec la mémoire partagée divisée proportionnellement.

Vous pouvez également consulter Découvrez ce qui utilise votre swap

#!/bin/bash
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
let OVERALL=$OVERALL+$SUM
SUM=0

done
echo "Overall swap used: $OVERALL"

Linux
  1. Comment savoir quelle distribution Linux vous utilisez ?

  2. Comment savoir si je démarre avec Uefi ?

  3. Comment puis-je savoir sous Linux quel processus a envoyé un signal à mon processus

  4. Comment puis-je connaître le chemin absolu d'un processus en cours d'exécution ?

  5. Comment puis-je savoir si une partition est montée ou non montée ?

Comment étendre l'espace d'échange à l'aide du fichier d'échange sous Linux

Comment afficher les informations de processus à l'aide de Procs sous Linux

Comment savoir quel programme utilise Internet et combien ?

Comment savoir quel processus utilise un fichier sous Linux ?

Si je connais le numéro PID d'un processus, comment puis-je obtenir son nom ?

Comment éviter d'aller au SWAP ?