parent
a54873573f
commit
410312a4a8
@ -0,0 +1,60 @@
|
||||
# --- enable/disable this file ---
|
||||
SRC_ENABLED=true
|
||||
|
||||
case "$SRC_ENABLED" in
|
||||
1|true|yes|on) unset SRC_ENABLED ;; # enabled — clean up and continue
|
||||
*) unset SRC_ENABLED; return ;; # disabled — clean up and skip this file
|
||||
esac
|
||||
# ---------------------------------
|
||||
|
||||
swaptop()
|
||||
{
|
||||
local limit="${1:-10}"
|
||||
local width="${2:-200}"
|
||||
local p pid swap cmd
|
||||
|
||||
{
|
||||
for p in /proc/[0-9]*; do
|
||||
[ -r "$p/smaps" ] || continue
|
||||
|
||||
pid="${p##*/}"
|
||||
|
||||
swap=$(awk '
|
||||
/^Swap:/ { swap += $2 }
|
||||
/^SwapPss:/ { pss += $2; have_pss = 1 }
|
||||
END {
|
||||
if (have_pss)
|
||||
print pss
|
||||
else
|
||||
print swap
|
||||
}
|
||||
' "$p/smaps" 2>/dev/null)
|
||||
|
||||
[ "${swap:-0}" -gt 0 ] || continue
|
||||
|
||||
cmd=$(tr '\0\t\n' ' ' < "$p/cmdline" 2>/dev/null)
|
||||
|
||||
if [ -z "$cmd" ]; then
|
||||
cmd="[$(cat "$p/comm" 2>/dev/null)]"
|
||||
fi
|
||||
|
||||
printf '%d\t%s\t%s\n' "$swap" "$pid" "$cmd"
|
||||
done
|
||||
} |
|
||||
sort -nr -k1,1 |
|
||||
head -n "$limit" |
|
||||
awk -F '\t' -v width="$width" '
|
||||
BEGIN {
|
||||
printf "%10s %7s %s\n", "SWAP", "PID", "COMMAND"
|
||||
printf "%10s %7s %s\n", "----------", "-------", "-------"
|
||||
}
|
||||
{
|
||||
line = sprintf("%9.1fM %7s %s", $1 / 1024, $2, $3)
|
||||
|
||||
if (length(line) > width)
|
||||
line = substr(line, 1, width - 3) "..."
|
||||
|
||||
print line
|
||||
}
|
||||
'
|
||||
}
|
||||
Loading…
Reference in new issue