深色模式
交换分区 swap
摘要:内存偶尔不够、又不想加物理内存?本文教你在测试机上用文件方式加一个 swap 并永久启用。前提:root/sudo,磁盘有空闲空间。
适用环境
bash
free -h # 看当前有无 swap
swapon --show # 列出已启用 swap
df -h / # 确认根分区有空间(如 2G+)1
2
3
2
3
一、创建 swap 文件
bash
fallocate -l 1G /swapfile # 分配 1G(不支持 fallocate 时用 dd)
# 备选:dd if=/dev/zero of=/swapfile bs=1M count=1024
chmod 600 /swapfile # 权限必须 600,否则 mkswap 会警告
mkswap /swapfile # 格式化为 swap1
2
3
4
2
3
4
二、启用
bash
swapon /swapfile
swapon --show # 确认出现在列表
free -h # Swap 一行应有 1.0Gi1
2
3
2
3
三、开机自动启用
bash
echo '/swapfile none swap sw 0 0' >> /etc/fstab
mount -a # 校验 fstab(swap 行无挂载点,通常无输出即 OK)1
2
2
验证
- [ ]
swapon --show列出/swapfile - [ ]
free -h的 Swap 显示约 1G - [ ] 重启后 swap 仍在(
swapon --show)
常见坑
- 权限不对:
/swapfile不是 600 会被 mkswap 拒绝或告警。 - 云盘 IO 慢:文件 swap 在云盘上性能差,仅应急,生产建议加内存。
- fallocate 在某些 FS 不可用:XFS/ext4 一般 OK,虚机用 qcow2 可能失败,改用 dd。
- swappiness 策略:
sysctl vm.swappiness=10可降低换出倾向(默认 60)。