Debian Swapper常见问题及解答
使用free -h
命令可快速查看系统内存与Swap的总使用量、剩余量及利用率;swapon --show
命令能详细列出当前启用的Swap分区/文件(包括设备名称、类型、大小、已用空间等信息)。这两个命令是日常监控Swap状态的常用工具。
若Swap使用率长期接近100%,需通过以下方式扩容:
fallocate -l 4G /swapfile
(4G为例)创建指定大小的文件,执行chmod 600 /swapfile
设置权限(仅root可读写),再用mkswap /swapfile
格式化为Swap空间,最后用swapon /swapfile
启用。fdisk /dev/sdX
(X为硬盘标识,如sda)创建新分区,将分区类型改为“Linux swap”(代码82),格式化(mkswap /dev/sdXY
,XY为分区号)后启用(swapon /dev/sdXY
)。/etc/fstab
文件(如/swapfile none swap sw 0 0
或/dev/sdXY none swap sw 0 0
),确保系统重启后自动挂载。swappiness
是内核参数,控制系统使用Swap的倾向(值范围0-100):
sudo sysctl vm.swappiness=10
(立即生效,重启失效);/etc/sysctl.conf
文件,添加vm.swappiness=10
,然后执行sudo sysctl -p
使配置生效。sudo swapoff -a
命令关闭所有已启用的Swap分区/文件(系统重启后会恢复)。/etc/fstab
文件,找到Swap相关的行(如/dev/sdXY none swap sw 0 0
或/swapfile none swap sw 0 0
),在行首添加#
注释,保存后重启系统即可。/etc/fstab
中Swap条目格式正确(无拼写错误、路径存在),或Swap分区类型为“Linux swap”(代码82)。journalctl -xe
或/var/log/syslog
查看启动时的错误信息(如权限不足、设备不存在)。fsck /dev/sdXY
(X为硬盘标识,Y为分区号)修复(需先卸载Swap)。swapoff
现有Swap,删除旧分区/文件,重新创建并启用Swap。即使系统负载低,若物理内存充足,Swap仍可能被使用,主要原因是:
vm.swappiness
值大于0(如默认60),系统会主动将部分内存数据换出到Swap,以预留内存给可能的后台进程。