查看总大小和占用
free -h
查看进程具体使用情况
创建文件 getswap.sh
echo -e "pid\tswap\tswap_mb\tproc_name"
for pid in $(ls -l /proc | grep ^d | awk '{ print $9 }' | grep -v [^0-9]); do
# 判断该进程是否占用了 swap
grep -q "Swap" /proc/$pid/smaps 2>/dev/null
if [ $? -eq 0 ]; then
# 如果占用了 swap
swap=$(grep Swap /proc/$pid/smaps | awk '{ sum+=$2; } END { print sum }')
proc_name=$(ps aux | grep -w "$pid" | grep -v grep | awk '{ for(i=11;i<=NF;i++){ printf("%s ", $i); }}')
if [ $swap -gt 0 ]; then
# 输出 swap 信息
swap_mb=$((swap / 1024))
echo -e "$pid\t${swap} KB\t${swap_mb} MB\t$proc_name"
fi
fi
done | sort -k2 -n
修改脚本权限
chmod +x getswap.sh
运行脚本
./getswap.sh