swap
2 min read
**Swap 内存问题整理喵~**
**① swappiness 是什么**
Linux 内核参数,范围 0~100,值越高越倾向把内存页换出到 swap。默认 60。
**② 在哪设置**
- 临时:`sysctl vm.swappiness=10`
- 永久:编辑 `/etc/sysctl.conf`,加一行 `vm.swappiness=10`,然后 `sysctl -p`
**③ 默认 60 会导致卡顿吗**
一般不会。物理内存够用时内核不会主动往 swap 塞东西。卡顿通常发生在内存不足 + swap 跑在 HDD 上时。
**④ swap 大小建议(RHEL 官方)**
- ≤2GB → 2 倍
- 2~8GB → 等于 RAM
- 8~64GB → 4~8GB
- >64GB → 4~8GB 足够
- 如果要休眠(hibernation),swap 需 ≥ RAM
**⑤ 常见 swap 问题与解决**
- 频繁读写卡顿 → 降 swappiness,加物理内存,换 SSD
- 使用率异常高 → swappiness 调低到 10
- 空间不够 → 用 swapfile 动态扩容
- SSD 寿命焦虑 → 用 zram/zswap 代替磁盘 swap
- 休眠恢复失败 → swap 大小不够,需 ≥ 物理内存
**⑥ 大内存(128GB)怎么发现内存问题**
别等压力测试喵。建议用 cgroup 或容器把内存限制到 4~8GB 跑开发流程,低配环境一跑,内存泄漏当场现形。压测是压吞吐的,抓泄漏不如主动降级。
