Monitorar uso do swap no Linux

Posted . Visible to the public.

Para verificar quais processos e threads estão consumindo o espaço do swap (e provavelmente causando lentidões), crie um script swapusage.sh com o seguinte conteudo:
#!/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

Agora execute sudo chmod +x swapusage.sh e execute o script como root: ./swapusage.sh .\
Para ordenar por uso de swap: ./swapusage.sh | sort -n -k 5 .\
Para remover da lista os que não usam swap e ordenar também: ./swapusage.sh | egrep -v "Swap used: 0" |sort -n -k 5 .

Frederico Galvão
Last edit
Posted by Frederico Galvão to ZeroGlosa (2012-05-22 17:49)