在 Ubuntu(以及 Linux 内核)中,swap 的大小限制主要取决于你使用的是 swap 分区 还是 swap 文件,以及系统架构和文件系统。
一、swap 分区(swap partition)
传统方式,使用独立分区作为 swap。
限制
- 最大单个 swap 分区大小:
- x86 / x86_64(常见 PC):最大 64 TB(理论上)
- 实际受限于:
- 磁盘分区表(MBR 最大 2TB,GPT 可远大于)
- 内核和文件系统支持
✅ 一般情况下,普通服务器/桌面完全够用
二、swap 文件(swap file,推荐方式)
Ubuntu 较新版本(18.04+)默认使用 swap 文件。
限制
- 最大 swap 文件大小:
- ext4 / xfs 文件系统:通常最大 64 TB
- 实际受文件系统限制
- Ubuntu 官方建议:
- 内存 ≤ 2GB:swap = 2× 内存
- 内存 2–8GB:swap = equal to RAM
- 内存 8–64GB:swap = 至少 4GB
- 内存 > 64GB:swap = 最少 4GB(或不需要)
✅ 可以动态创建、扩容、删除
三、swap 总大小限制
Linux 内核允许:
- 最多 32 个 swap 区域(partition + file 合计)
- 总 swap 大小理论上可达 数 TB 级别
四、实际建议(Ubuntu 使用)
桌面 / 笔记本
- 8GB 内存:4–8GB swap
- 16GB+ 内存:4GB swap(或关闭)
服务器
- 数据库 / 高负载:少 swap(1–4GB)
- 内存极小或频繁 OOM:大 swap
休眠(hibernate)
五、查看当前 swap
swapon --show
free -h
六、总结一句话
Ubuntu 的 swap 支持非常大(TB 级),但实际使用中一般 4–16GB 就足够,除非需要休眠或极端内存场景。
如果你愿意,我可以帮你:
- 查看你当前 swap 配置
- 教你扩容 swap 文件
- 判断是否该关闭 swap