Tento příspěvek ukazuje, jak zkontrolovat využití swapu každého procesu, odpovídá „Jak mohu vědět, který proces by spotřeboval největší swapovací prostor?“
Pro všechna jádra
Využití swapu se zobrazuje jako „Swap ” ve sloupcích /proc/[PID]/smaps . To udává velikost swapované paměti pro každý rozsah paměti, takže součet všech těchto hodnot ukazuje celkové využití swapu procesem.
Například jednoduchý skript níže vypočítá celkové využití swapu procesu, který PID =1027:
# echo $((`grep Swap /proc/1027/smaps | awk '{ print $2; }' | tr '\n' '+'`0))
Pro jádra UEK2(2.6.39) nebo novější
Je snazší zkontrolovat využití swapu konkrétního procesu, stačí zaškrtnout „VmSwap ” ve sloupci /proc/[PID]/status . To označuje celkové využití odkládacího prostoru jako jednu hodnotu. Tento sloupec neexistuje v /proc/[PID]/status s jádrem <2.6.39. Chcete-li například seřadit procesy s využitím swapu od většího, spusťte níže uvedený skript:
# for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | more
Hodnota, která je zobrazena/vypočtena v tomto příspěvku, neudává přesnou velikost použitého odkládacího prostoru, ale pouze přibližnou. Některé (jako sdílená knihovna) lze započítat dvakrát a jiné (jako swap cache) se ve skutečnosti nevyměňují.