利用可能なメモリはたくさんありますが(約4G)、Fedoraボックスではスワップが使用されています(200 + M)。
どのプロセスがスワップを使用しているのでしょうか。どうすればそれを知ることができますか。
psおよびtopはメモリ使用量のみを表示します。
前もって感謝します。
ここ から:
[a]/ proc/meminfo-このファイルは、システムのメモリ使用量に関する統計を報告します。 freeは、システム上の空きメモリと使用済みメモリ(物理メモリとスワップの両方)の量、およびカーネルが使用する共有メモリとバッファを報告するためにfreeによって使用されます。また、無料のvmstatなどのツールを使用して、同じ情報を見つけることもできます。
[b]/ proc/$ {PID}/smaps、/ proc/$ {PID}/status、および/ proc/$ {PID}/stat:これらのファイルを使用してPIDを使用して、各プロセスで使用されるメモリ、ページ、スワップに関する情報を検索します。
[c]smem-このコマンド(pythonスクリプト)は、共有メモリを比例的に分割してメモリ使用量を報告します。
また、参照することもできますスワップを使用しているものを見つける
#!/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"
Cyberciti.bizコマンドを改善して、より簡潔な回答を表示します。
(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
出力例:
COMM PID SWAP
dockerd 662 2736 kB
skypeforlinux 26865 1320 kB
NetworkManager 303 1112 kB
slim 392 1028 kB
redis-server 350 204 kB
/proc/'processPID'/status
フィールドVmSwap
でその情報を見つけることができます。
このコマンドを使用すると、スワップを使用しているすべてのプロセスを一覧表示できます。
for file in /proc/*/status ;
do
awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file;
done
参照: http://www.cyberciti.biz/faq/linux-which-process-is-using-swap/
私がawkを使用して、スワップ使用量でソートされたニーステーブルを出力することについて考えます。
awk 'function pr(){if (s ~ /^[1-9]/) print p,n,s;n="";p="";s=""}BEGIN{FS="\t *";OFS="\t"}/^Name:/{pr();n=$2}/^VmSwap:/{s=$2}/^Pid:/{p=$2}END{pr()}' /proc/*/status | sort -t $'\t' -k3 -n -r | column -t -s $'\t'
出力例:
33992 httpd 13916 kB
9331 httpd 10616 kB
43124 httpd 1800 kB
31353 httpd 592 kB
8592 master 184 kB
8606 crond 44 kB
8653 mingetty 40 kB
8655 mingetty 32 kB
onadrianlztの回答に基づいています。