温馨提示×

centos缓存机制有哪些

小樊
38
2026-01-01 23:58:21
栏目: 智能运维

CentOS常见缓存机制概览

CentOS中,缓存覆盖内核、文件系统、磁盘以及应用层多个层面,核心目标是用空闲内存加速I/O网络访问,降低访问延迟与磁盘磨损。

一 内核与文件系统缓存

缓存层级/机制 作用 关键接口或位置 备注
Page Cache(页面缓存) 缓存文件数据,加速文件读写与mmap访问 /proc/meminfoCachedfreecache 读写命中直接从内存返回
Buffer Cache(缓冲缓存) 块设备的元数据/块读写缓冲 freebuffers 与 Page Cache 协同工作
dentry / inode 缓存(dcache) 缓存目录项与索引节点,加速路径解析与属性获取 /proc/sys/vm/drop_caches 可清理 属于内核 slab 对象
VFS 层缓存压力 控制 dentry/inode 回收倾向 vm.vfs_cache_pressure 值越低越倾向保留
脏页回写控制 决定“脏数据”何时写回磁盘 vm.dirty_ratiovm.dirty_background_ratiovm.dirty_expire_centisecsvm.dirty_writeback_centisecs 平衡性能与数据安全
元数据挂载选项 减少元数据写入 noatimenodiratime 降低写放大
Swap 倾向 控制内存紧张时换出策略 vm.swappiness(默认60 值越大越倾向使用 swap
内存回收与清理 触发回收/清理缓存 syncecho 1/2/3 > /proc/sys/vm/drop_caches 清理前应先 sync,避免数据丢失
持久化内存文件系统 以内存为存储介质 tmpfs(如 /dev/shm 计入“已用内存”,通常不计入可回收 cache

以上机制共同构成了 Linux(CentOS)内核与文件系统的缓存体系,是提升本地磁盘访问性能的关键路径。

二 磁盘与设备层缓存

  • 磁盘写缓存(Disk Write Cache):多数磁盘/RAID 控制器提供写回缓存,可显著加速写操作,但掉电可能丢失未落盘数据。可通过工具(如 hdparm)查看/设置写缓存策略;在可靠性要求高的场景建议关闭写回缓存或配合电池/超级电容保护。
  • 文件系统日志(Journal):如 ext3/ext4 的日志会暂存元数据变更,提升崩溃一致性;可通过 mount -o remount,ro 或卸载来同步并清空日志(注意仅影响日志区,不等同于文件数据全部落盘)。

三 网络与应用层缓存

  • DNS 客户端缓存:解析结果在本地缓存,减少重复查询与网络往返;可通过 systemd-resolvednscd 管理缓存与 TTL 行为。
  • Web 服务器缓存:如 Nginxproxy_cache、Apache 的 mod_cache,将热点内容缓存在内存/磁盘,降低后端压力与响应时延。
  • 数据库缓存:如 MySQL/MariaDB 的查询缓存(Query Cache,已在 8.0 移除)、InnoDB Buffer Pool(缓冲池);合理设置缓冲池大小与 SQL 缓存策略可显著提升查询性能。
  • 应用内存缓存:进程内或分布式缓存(如 MemcachedRedis)用于会话、热点数据与计算结果复用,减少对数据库与后端服务的访问。
  • 浏览器缓存:在桌面/终端浏览器中缓存 HTML/CSS/JS/图片 等静态资源,减少带宽与时延(属于客户端行为)。

四 监控与常用操作

  • 查看内存与缓存
    • free -m:关注 Mem: buff/cache-/+ buffers/cache 两行,理解“被程序实际使用”和“可回收”的内存含义。
    • cat /proc/meminfo:查看 Cached、Buffers、SReclaimable 等细项。
  • 触发同步与清理
    • sync:将脏页刷入磁盘(不回收缓存)。
    • echo 1 > /proc/sys/vm/drop_caches:释放页缓存echo 2:释放dentry/inodeecho 3:释放两者(执行前建议 sync)。
  • 调优要点(示例)
    • 降低元数据更新:mount -o remount,noatime /your/mount/point
    • 调整脏页阈值:echo 40 > /proc/sys/vm/dirty_ratioecho 10 > /proc/sys/vm/dirty_background_ratio
    • 调整 VFS 回收倾向:echo 50 > /proc/sys/vm/vfs_cache_pressure
    • 调整 swap 倾向:echo 10 > /proc/sys/vm/swappiness(示例值,按负载与场景评估)
  • 风险提示
    • 清理缓存会导致后续访问变慢(缓存重建),生产环境谨慎执行,优先依赖内核自动回收。
    • 修改内核参数应循序渐进,变更前备份,变更后观察 vmstatiostat 等指标以评估效果。

0