在 Linux 系统中,可以通过以下几种常用方式查看 swap(交换分区/交换文件)的使用情况:
freefree -h
示例输出:
total used free shared buff/cache available
Mem: 7.8G 2.1G 1.2G 120M 4.5G 5.2G
Swap: 2.0G 512M 1.5G
说明:
-h:以人类可读方式显示(G/M)swaponswapon --show
示例:
NAME TYPE SIZE USED PRIO
/swapfile file 2G 512M -2
说明:
vmstatvmstat
关注:
swpd free buff cache
swpd:已使用的 swap(KB)top / htoptoptop
在输出中能看到:
MiB Swap: 2048.0 total, 1536.0 free, 512.0 used
htop(更直观,需安装)htop
底部会显示 swap 使用情况。
for file in /proc/*/status; do
awk '/^Pid:|^Name:|VmSwap/{print $0}' "$file" 2>/dev/null
done | grep -A2 VmSwap | grep -v "^--$"
或更简单(推荐):
grep VmSwap /proc/*/status | sort -k2 -n -r | head
示例:
/proc/1234/status:VmSwap: 256 kB
vmstat 1
如果 si(swap in)和 so(swap out)长期不为 0,说明系统频繁使用 swap,可能存在内存不足。
sudo swapoff -a # 关闭
sudo swapon -a # 开启
| 目的 | 命令 |
|---|---|
| 快速查看 | free -h |
| 查看 swap 来源 | swapon --show |
| 实时分析 | top / htop |
| 查进程占用 | grep VmSwap /proc/*/status |
如果你是想 判断 swap 是否影响性能、是否该加内存,可以把 free -h 和 vmstat 1 的输出发我,我可以帮你分析。