ubuntu缓存设置多少好
导读:Ubuntu 缓存设置建议 总体原则 Linux 会按需自动使用空闲内存做 Page Cache、dentry/inode 等缓存,通常不需要、也不应该“固定一个缓存大小”。判断是否需要调整,优先看指标:用 free -h 观察 avai...
Ubuntu 缓存设置建议
总体原则
- Linux 会按需自动使用空闲内存做 Page Cache、dentry/inode 等缓存,通常不需要、也不应该“固定一个缓存大小”。判断是否需要调整,优先看指标:用 free -h 观察 available 是否充足;用 vmstat 1 或 sar -B 观察 si/so(swap 换入/换出) 是否频繁;用 iostat -x 1 观察 await、r/s、w/s 是否异常。出现持续换页或 I/O 等待升高,再考虑调参,而不是预先设定一个“缓存值”。
关键内核参数与推荐范围
- 下表给出常用、对“缓存行为”影响最大的内核参数、含义与常见取值范围(需结合内存容量与负载实测微调):
| 参数 | 含义 | 推荐范围 | 何时调整 |
|---|---|---|---|
| vm.swappiness | 使用 swap 的倾向(0–100) | 10–30(桌面/通用);内存充足可更低 | 频繁换页(si/so 不为 0)或交互卡顿 |
| vm.dirty_ratio | 脏页占内存上限,触发同步刷盘 | 10–20 | 写突发大、提交延迟敏感 |
| vm.dirty_background_ratio | 触发后台刷盘的脏页阈值 | 5–10 | 同上,用于“先后台写、后强制写” |
| vm.vfs_cache_pressure | 回收目录项/索引节点缓存倾向 | 50–100(默认 100);想多留 VFS 缓存可降至 40–60 | 大量小文件/目录操作、元数据密集场景 |
- 示例(临时生效,重启后失效):
- sudo sysctl -w vm.swappiness=10
- sudo sysctl -w vm.dirty_background_ratio=5
- sudo sysctl -w vm.dirty_ratio=10
- sudo sysctl -w vm.vfs_cache_pressure=50
- 永久生效:将上述行写入 /etc/sysctl.conf 或 /etc/sysctl.d/99-custom.conf,然后执行 sudo sysctl -p。上述区间与用法为常见实践,可据业务延迟/吞吐目标微调。
网络与应用层缓存
- 网络 TCP 读写缓冲
- 查看当前:cat /proc/sys/net/core/rmem_default、rmem_max、wmem_default、wmem_max;cat /proc/sys/net/ipv4/tcp_mem
- 跨机房/高带宽大文件传输可适当增大,例如将最大发送/接收缓冲设为 12 MB:
- echo ‘net.core.rmem_max=12582912’ | sudo tee -a /etc/sysctl.conf
- echo ‘net.core.wmem_max=12582912’ | sudo tee -a /etc/sysctl.conf
- 同时建议开启窗口缩放、SACK、timestamp 等特性(通常默认已启用),以减少高时延下的性能劣化。
- 应用层缓存
- 包管理:定期清理 APT 缓存(sudo apt-get clean、sudo apt-get autoclean),避免无谓占用磁盘。
- 编译:启用 ccache/sccache 复用编译结果,显著加速重复构建。
- 服务类:如 memcached(设置 -m 参数,如 -m 1024 表示 1GB)、dnsmasq(如 cache-mem 512)按业务内存预算配置。
何时清理缓存与注意事项
- 手动清理(仅在明确需要时执行,例如基准测试前、或缓存异常膨胀影响业务):
- 同步落盘并释放缓存:sync & & echo 3 | sudo tee /proc/sys/vm/drop_caches
- 仅释放 PageCache:echo 1;仅释放 dentry/inode:echo 2
- 注意:该操作不会释放“脏页”,且会短时增加磁盘 I/O,生产环境谨慎使用,避免配置为定时任务“频繁清理”。
- 更稳妥的做法:优先通过 swappiness、dirty_ratio/background_ratio、vfs_cache_pressure 等参数让内核自动、平滑地管理缓存;必要时使用 tuned 选择更贴近场景的性能配置(如 throughput-performance、virtual-guest),以获得稳定的整体调优效果。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu缓存设置多少好
本文地址: https://pptw.com/jishu/752712.html
