linux查看swap空间使用情况

发布时间:2025-11-22 16:11:46
修改时间:2025-11-22 16:13:46
总阅读数:8
今日阅读数:8
昨日阅读数:0
字数:797

查看总大小和占用

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