AlmaLinux 9:swap 大小与 swapfile 操作
在 almalinux:9 容器(AlmaLinux 9.8)中实际执行:fallocate -l 64M /swapfile、chmod 600、mkswap、swapon、cat /proc/swaps。日志:plans/content-expansion/evidence/logs/alma-swap-sizing.log。
swapon 在容器里被拒绝(Operation not permitted),所以「启用生效」这一段未在本环境验证,需在真实系统执行。
先看当前 swap
Section titled “先看当前 swap”cat /proc/swapsswapon --showFilename Type Size Used Priority/dev/zram0 partition 24639296 22432652 32767/dev/vdc partition 1048572 385292 1有输出说明已有 swap 在用;没有输出说明当前没启用。
| 内存 | 建议 swap |
|---|---|
| ≤ 2 GB | 内存的 2 倍 |
| 2–8 GB | 与内存相当 |
| 8–64 GB | 至少 4 GB |
| > 64 GB | 按负载决定,至少 4 GB |
这是 Red Hat 文档的推荐区间(RHEL 9 存储文档,核对日期 2026-10-19),AlmaLinux 作为 RHEL 兼容发行版沿用同一口径;起点不是定律,数据库与容器宿主应按实际负载调整。
建 swapfile
Section titled “建 swapfile”sudo fallocate -l 4G /swapfilesudo chmod 600 /swapfilels -l /swapfilesudo mkswap /swapfile-rw------- 1 root root 4294967296 ... /swapfileSetting up swapspace version 1, size = 4 GiB (4294963200 bytes)no label, UUID=...chmod 600 不可省:644 时 mkswap 会警告、swapon 会拒绝(swapfile 可被其他用户读取等于泄露内存内容)。
启用(需真实系统)
Section titled “启用(需真实系统)”sudo swapon /swapfileswapon --showecho '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstabswapon --show 出现 /swapfile 才算生效;/etc/fstab 那行保证重启后仍启用。
容器限制:
almalinux:9容器里fallocate、chmod、mkswap都成功,但swapon返回Operation not permitted。这不是配置错误,而是容器缺少权限;请在真实系统完成启用与重启验证。
- swapfile 放在不支持预分配的文件系统上:改用
dd生成; swappiness越高越好是误解:数据库类负载通常调低(如 10),让内核优先用内存;- zram 与 swapfile 不是二选一:小内存机器可 zram 优先、swapfile 兜底,但两者都要算进容量规划。
练习:4 GB 内存机器加 4 GB swap
Section titled “练习:4 GB 内存机器加 4 GB swap”sudo fallocate -l 4G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfileecho '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstab检查:
swapon --show→ 有/swapfile,SIZE 约 4Gcat /proc/swaps | wc -l→ 比操作前多 1 行- 重启后
swapon --show→ 仍在 sudo swapoff /swapfile && sudo swapon /swapfile→ 可正常关闭再启用
常见问题
`swapon` 报 Operation not permitted 是权限不够吗?
在容器里通常是能力受限而不是文件权限问题:fallocate/chmod/mkswap 都成功,只有 swapon 被拒。换到真实主机或带相应权限的环境再试。
swapfile 权限为什么必须 600?
swap 里可能有内存中的敏感数据。644 时 mkswap 会警告、swapon 会拒绝,因为其他用户能读到这个文件。
有 zram 还需要 swapfile 吗?
看用途:zram 压缩内存、适合小内存机器;swapfile 提供磁盘兜底并支持休眠。两者可共存,但要一起算进容量与 IO 规划。
- 系统核对:新装系统 7 项核对
- 日志轮转:logrotate 实战
- 事务回滚:dnf history undo