Debian 交换空间 Swapper 自定义设置指南
一 概念与检查
- 在 Linux 中,所谓的“swapper”通常指系统的交换空间(Swap),用于在物理内存不足时将不活跃的内存页换出到磁盘,从而提供额外的“虚拟内存”。交换空间可以是交换分区或交换文件。
- 常用检查命令:
- 查看是否启用及设备:sudo swapon --show
- 查看内存与交换概况:free -h
- 查看内核参数:cat /proc/sys/vm/swappiness
这些命令可帮助你确认当前是否存在交换空间、容量大小与使用倾向。
二 创建与启用交换文件或分区
- 创建交换文件(示例为2GB):
- 创建文件:sudo fallocate -l 2G /swapfile(若 fallocate 不可用,可用:sudo dd if=/dev/zero of=/swapfile bs=1G count=2)
- 安全权限:sudo chmod 600 /swapfile
- 格式化为交换:sudo mkswap /swapfile
- 启用交换:sudo swapon /swapfile
- 验证:swapon --show 或 free -h
- 开机自动启用:在 /etc/fstab 添加一行:/swapfile none swap sw 0 0
- 使用交换分区(示例设备为**/dev/sdXn**):
- 格式化:sudo mkswap /dev/sdXn
- 启用:sudo swapon /dev/sdXn
- 开机自动启用:在 /etc/fstab 添加:/dev/sdXn none swap sw 0 0
以上步骤完成后,系统将在需要时自动使用你配置的交换空间。
三 调整交换空间大小
- 增加容量:按“创建与启用”的步骤新建一个更大的交换文件或分区,启用后,确保 /etc/fstab 仅保留正确的条目,旧的条目应删除或注释,避免重复启用。
- 减少容量(更稳妥的做法是“替换法”):
- 临时停用:sudo swapoff /swapfile 或 sudo swapoff /dev/sdXn
- 调整大小:
- 交换文件:删除旧文件并重建为更小的尺寸,然后 mkswap/swapon;
- 交换分区:使用 gparted/parted/fdisk 等工具调整分区大小(操作前务必备份数据)。
- 更新 /etc/fstab 以匹配新的设备/文件路径。
- 验证:swapon --show 与 free -h。
直接“缩小”现有交换文件风险较高,推荐用“新建更大/更小 + 切换”的方式完成调整。
四 优化交换行为的关键参数
- 调整“使用交换的倾向”——swappiness(取值范围0–100):
- 查看:cat /proc/sys/vm/swappiness
- 临时设置:sudo sysctl vm.swappiness=10(示例值,数值越低越倾向使用物理内存)
- 永久设置:在 /etc/sysctl.conf 添加或修改:vm.swappiness=10,然后执行 sudo sysctl -p 使配置生效。
- 多交换源时的优先级:
- 在 /etc/fstab 中为交换项添加优先级选项 pri=N(数值越大优先级越高),例如:
- /swapfile none swap sw,pri=10 0 0
- /dev/sdXn none swap sw,pri=5 0 0
这样可让系统优先使用你指定的交换空间。
- 使用提示:
- swappiness 设置过低可能在内存紧张时导致 OOM 风险增大;过高则会增加磁盘 I/O、降低性能。请根据内存容量、负载类型(桌面/服务器/数据库)与存储类型(SSD/HDD)综合权衡。
五 启用停用与日常监控
- 停用交换:
- 停用单个:sudo swapoff /swapfile 或 sudo swapoff /dev/sdXn
- 停用全部:sudo swapoff -a
- 如不再需要,记得从 /etc/fstab 删除对应条目,并(对文件)执行 rm /swapfile。
- 监控工具:
- 实时与概况:top/htop、free -h
- 虚拟内存统计:vmstat 1
这些工具可帮助你观察 swap 的命中与 I/O 情况,便于进一步调优。