CentOS缓存配置有哪些最佳实践
导读:CentOS缓存配置最佳实践 一 基线评估与监控 建立“先评估、后优化”的流程:用free -h查看内存与缓存概况,用vmstat -s | grep cache观察文件系统缓存规模,用iostat -x 1评估磁盘I/O压力,作为后续调...
CentOS缓存配置最佳实践
一 基线评估与监控
- 建立“先评估、后优化”的流程:用free -h查看内存与缓存概况,用vmstat -s | grep cache观察文件系统缓存规模,用iostat -x 1评估磁盘I/O压力,作为后续调优的基线。
- 建立持续监控:关注命中率、响应时延、流量与错误率;对关键路径(如反向代理、数据库)设置告警阈值,便于快速回滚。
- 生产变更前在测试环境验证,逐步推广,避免一次性大幅改动。
二 操作系统层缓存优化
- 让内核自动管理页面缓存:Linux会优先利用空闲内存做page cache/dentry/inode缓存,通常无需人为“设定大小”。仅在明确瓶颈时再微调内核参数。
- 减少非必要元数据写入:对不关心访问时间的目录,挂载时使用noatime(必要时用relatime),降低元数据更新频率。
- 脏页刷写策略:通过vm.dirty_ratio与vm.dirty_background_ratio平衡写回时机与I/O突发。通用建议是“适度提高后台刷写比例、限制前台同步刷写阈值”,例如将脏页上限设为10%、后台阈值设为5%(需结合负载与磁盘能力压测验证)。
- VFS缓存压力:用vm.vfs_cache_pressure控制回收目录项与索引节点缓存的倾向,默认值偏高时可适度降低(如50),提升路径解析与元数据命中。
- 交换倾向:用vm.swappiness降低对Swap的依赖(如10),在内存充裕时减少换页;若内存紧张,再适度提高以避免OOM。
- 变更方式:临时用sysctl -w验证,长期写入**/etc/sysctl.conf并执行sysctl -p**;或使用tuned选择更贴近场景的调优配置(如 enterprise-storage)。
三 应用层缓存配置
- Web 反向代理与静态资源:
- Nginx 示例:设置共享内存区与磁盘缓存池,控制对象生命周期与容量。
- 配置要点:proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
- 启用缓存:proxy_cache my_cache; 并为不同状态码设置有效期(如 200/302 10m,404 1m)。
- Varnish:编辑**/etc/varnish/default.vcl**定义后端、缓存大小与失效策略,启动并持久化服务。
- Nginx 示例:设置共享内存区与磁盘缓存池,控制对象生命周期与容量。
- DNS 解析缓存:启用并调优nscd(/etc/nscd.conf),如 hosts 缓存开启、正解TTL 3600、负解TTL 20,降低解析时延与上游压力。
- 数据库缓存:
- MySQL:将innodb_buffer_pool_size设为可用内存的较大比例(如50%–70%,视实例角色而定),并合理设置查询缓存(若仍使用)。
- PostgreSQL:将shared_buffers设为总内存的约25%,并按工作负载调整work_mem与maintenance_work_mem。
四 临时清理与变更回滚
- 清理缓存的正确方式:先执行sync确保脏页落盘,再按需写入:
- 仅清理页缓存:echo 1 > /proc/sys/vm/drop_caches
- 仅清理目录项与索引节点缓存:echo 2 > /proc/sys/vm/drop_caches
- 清理全部三类缓存:echo 3 > /proc/sys/vm/drop_caches
- 注意:清理缓存会导致短时间性能下降,仅用于问题定位、容量评估或变更回滚前的准备,不建议作为日常运维手段。
五 关键参数与示例配置
- 内核参数建议(写入**/etc/sysctl.conf后执行sysctl -p**):
- vm.dirty_background_ratio = 5(后台刷写触发阈值)
- vm.dirty_ratio = 10(前台同步刷写阈值)
- vm.vfs_cache_pressure = 50(VFS缓存回收倾向)
- vm.swappiness = 10(降低换页倾向)
- Nginx 缓存示例(/etc/nginx/nginx.conf 的 http 段):
- proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
- server 段启用:proxy_cache my_cache; 并设置 proxy_cache_valid(如 200/302 10m,404 1m)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS缓存配置有哪些最佳实践
本文地址: https://pptw.com/jishu/762901.html
