Ubuntu 缓存命中率提升实操指南

一 监控与评估
cachestat 1 3,关注 HITS/MISSES、BUFFERS_MB/CACHED_MB,用于判断总体读缓存效果与脏页情况。cachetop,默认按 HITS 排序,关注 READ_HIT%/WRITE_HIT%,定位热点进程。pcstat /bin/ls,执行一次访问后再查,可看到 Cached/Percent 从 0 到 100% 的变化,用于验证“预热”是否有效。free -h 观察 available 内存与 buff/cache 占用;cat /proc/meminfo 查看更细的内存与 HugePages 信息。上述工具与方法可快速判断缓存是否有效、哪些进程/文件受益,从而指导后续优化方向。二 系统层优化
echo 10 > /proc/sys/vm/swappiness),降低换页,保留更多内存给 Page Cache。sysctl vm.dirty_background_ratio=5; sysctl vm.dirty_ratio=10; sysctl vm.dirty_expire_centisecs=30000; sysctl vm.dirty_writeback_centisecs=5000。echo noop > /sys/block/sda/queue/scheduler)。cat/cp/应用预取),配合 pcstat 验证缓存比例提升,再承载业务流量。以上措施能显著提升读缓存命中、降低写放大与抖动,使缓存更稳定地服务真实工作负载。三 应用与内核运行期优化
default_hugepagesz=1G hugepagesz=1G hugepages=30)、挂载 hugetlbfs 并在程序侧通过 libhugetlbfs 或 LD_PRELOAD 使用大页。四 参数示例与持久化
echo 10 | sudo tee /proc/sys/vm/swappinesssysctl vm.dirty_background_ratio=5; sysctl vm.dirty_ratio=10; sysctl vm.dirty_expire_centisecs=30000; sysctl vm.dirty_writeback_centisecs=5000echo noop | sudo tee /sys/block/sda/queue/schedulersysctl -p 加载;GRUB 参数修改后执行 update-grub 并重启。五 场景化建议