1. 为什么可以用两个 Swapfile?
Linux 内核支持同时挂载多个 Swap 空间(包括分区和文件)。你可以给不同的 Swapfile 设置不同的 优先级 (Priority)。
建议策略:
- Swapfile A (在系统盘/SSD): 设置高优先级。虽然只有 10G,但如果系统盘是 SSD,读写延迟低。
- Swapfile B (在 2T 存储盘): 设置低优先级。作为“最后的防线”,防止内存溢出导致 PBS 进程被 OOM Killer 杀掉。
2. 操作步骤
假设你的 2T 存储挂载在 /mnt/storage:
第一步:创建第一个 Swapfile (例如 2GB,在系统盘)
Bash
fallocate -l 2G /swapfile_sys
chmod 600 /swapfile_sys
mkswap /swapfile_sys
swapon -p 10 /swapfile_sys # 优先级设为 10第二步:创建第二个 Swapfile (例如 4GB,在 2T 存储盘)
Bash
fallocate -l 4G /mnt/storage/swapfile_storage
chmod 600 /mnt/storage/swapfile_storage
mkswap /mnt/storage/swapfile_storage
swapon -p 5 /mnt/storage/swapfile_storage # 优先级设为 5第三步:持久化配置 (/etc/fstab)
编辑 /etc/fstab,添加以下两行:
Plaintext
/swapfile_sys none swap sw,pri=10 0 0
/mnt/storage/swapfile_storage none swap sw,pri=5 0 03. 特别提醒(针对 PBS 和小内存)
- ZFS 注意事项: 如果你的 2T 存储使用了 ZFS,千万不要把 Swapfile 放在 ZFS 文件系统上!这会导致内核死锁。如果存储是 Ext4 或 XFS,则没有问题。
- Swappiness 调优: 既然内存只有 2G,建议调高
vm.swappiness。
Bash
sysctl vm.swappiness=6010G 系统盘预警: PBS 的日志和
/var/lib/proxmox-backup下的索引文件(Chunks index)会随时间增长。- 避坑指南: 建议将 PBS 的数据存储目录(Datastore)设在 2T 的盘上,同时通过软链接将
/var/log/proxmox-backup也指向 2T 盘,防止 10G 系统盘被日志撑爆。
- 避坑指南: 建议将 PBS 的数据存储目录(Datastore)设在 2T 的盘上,同时通过软链接将
4. 优先级的小知识
当内存不足时,内核会先耗尽 Priority 10 的 Swap,只有当它满了,才会去用 Priority 5 的。这样可以确保你性能最好的磁盘优先承担压力。