Swapper(交换空间)是Ubuntu系统在物理内存不足时用于扩展虚拟内存的关键机制,其正常工作直接影响系统稳定性与性能。以下是检查Swapper状态的详细方法:
使用swapon命令可快速查看当前启用的Swap分区/文件:
sudo swapon --show
若输出为空,说明Swap未启用;若显示类似以下内容则表示启用(如/dev/sda2分区或/swapfile文件):
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 2G 0B -2
也可通过查看/proc/swaps文件验证(内容与swapon --show一致):
cat /proc/swaps
free命令:以人类可读格式(GB/MB)显示内存与Swap的总大小、已用空间、可用空间:
free -h
输出示例:
total used free shared buff/cache available
Mem: 7.7G 1.6G 1.2G 1.0G 5.0G 5.8G
Swap: 2.0G 0B 2.0G
若Swap行的used值长期接近total,说明物理内存严重不足,系统过度依赖Swap。
vmstat命令:统计虚拟内存使用情况,重点关注si(从磁盘交换到内存的数据量)、so(从内存交换到磁盘的数据量):
vmstat -s | grep swap
输出示例:
8388608 K total swap
0 K used swap
8388608 K free swap
若si/so值持续较高(如每秒超过100KB),说明Swap交换频繁,可能影响性能。
top/htop命令:实时查看系统资源使用情况,其中Swap部分显示当前Swap使用量及占比:
top # 或安装htop:sudo apt install htop && htop
在top输出中,%MEM列显示进程占用的物理内存比例,TIME+列显示进程占用CPU时间——若某进程长期占用高内存且TIME+增长快,可能导致Swap使用增加。
gnome-system-monitor:图形化工具(适用于桌面环境),通过“系统监视器”→“资源”标签查看内存与Swap的使用曲线,直观了解趋势。
Swappiness(vm.swappiness)是内核参数,控制系统使用Swap的倾向(默认值60,范围0-100):
查看当前值:
cat /proc/sys/vm/swappiness
临时修改(重启后失效):
sudo sysctl vm.swappiness=20 # 推荐值:10-20(平衡性能与内存利用率)
永久修改:编辑/etc/sysctl.conf文件,添加以下行:
vm.swappiness=20
保存后运行sudo sysctl -p使设置生效。
若Swap使用异常(如used值过高),可通过以下命令定位占用Swap的进程:
sudo smem -s swap -k -r | head -10 # 按Swap使用量排序,显示前10个进程
或使用top命令:按Shift+F选择%MEM或SWAP列排序,查看占用Swap最多的进程。
通过以上方法,可全面检查Ubuntu Swapper的工作状态,及时发现Swap使用异常(如未启用、过度使用、配置不合理),并采取相应措施优化(如增加物理内存、调整Swappiness、清理占用Swap的进程)。