GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu vědět, který proces používá swap?

Vylepšení příkazu cyberciti.biz, aby se zobrazila stručnější odpověď:

(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

Příklad výstupu:

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

Odtud:

[a] /proc/meminfo - Tento soubor hlásí statistiky o využití paměti v systému. Free jej používá k hlášení množství volné a použité paměti (fyzické i odkládací) v systému a také sdílené paměti a vyrovnávacích pamětí používaných jádrem. Ke zjištění stejných informací můžete také použít bezplatné nástroje vmstat a další nástroje.

[b]/proc/${PID}/smaps, /proc/${PID}/status a /proc/${PID}/stat :Tyto soubory použijte k vyhledání informací o paměti, stránkách a swapu používaném každým procesem pomocí jeho PID.

[c] smem - Tento příkaz (python script) hlásí využití paměti se sdílenou pamětí rozdělenou proporcionálně.

Můžete se také podívat na Zjistěte, co váš swap používá

#!/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. Jak zjistit, kterou distribuci Linuxu používáte?

  2. Jak zjistit, který proces vytváří soubor?

  3. Jak zjistit, zda bootuji pomocí Uefi?

  1. Jak zabít proces v Linuxu pomocí příkazu?

  2. Jak mohu v Linuxu zjistit, který proces poslal mému procesu signál

  3. Jak mohu znát absolutní cestu běžícího procesu?

  1. Jak zjistit, který proces zapisuje na disk v Linuxu

  2. Jak zabránit přechodu na SWAP?

  3. Jak mohu zjistit, který proces vytváří UDP provoz v Linuxu?