温馨提示×

如何设置linux缓存

小樊
42
2026-10-27 01:30:15
栏目: 智能运维

在 Linux 中,“设置缓存”可能涉及多个层面,常见的包括:磁盘缓存(Page Cache)、Swap 使用策略、文件系统缓存、应用层缓存(如 nginx、redis) 等。下面按常见场景给你一个清晰指引。


一、Linux 系统级缓存(Page Cache / 内存缓存)

1. 查看当前缓存情况

free -h

或

cat /proc/meminfo

关注:

  • Cached
  • Buffers
  • Available

2. 调整Swap使用倾向(影响缓存行为)

cat /proc/sys/vm/swappiness

默认值通常是 60(0–100)

  • 0:尽量不用 swap
  • 10:服务器推荐
  • 60:默认
  • 100:积极使用 swap

临时修改:

sysctl vm.swappiness=10

永久修改:

echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p

3. 调整脏页(写缓存)策略

cat /proc/sys/vm/dirty_ratio
cat /proc/sys/vm/dirty_background_ratio

常见优化(写多场景):

sysctl -w vm.dirty_ratio=10
sysctl -w vm.dirty_background_ratio=5

二、手动清理 Linux 缓存(慎用)

# 清理 pagecache
echo 1 > /proc/sys/vm/drop_caches

# 清理 dentries + inodes
echo 2 > /proc/sys/vm/drop_caches

# 全部清理
echo 3 > /proc/sys/vm/drop_caches

⚠️ 生产环境不建议频繁清理


三、文件系统缓存(如 ext4 / xfs)

挂载参数示例

mount -o noatime,nodiratime /dev/sda1 /data

常用优化参数:

  • noatime
  • nodiratime
  • barrier=0(仅特定场景)

四、应用层缓存示例

1. Nginx 缓存

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m;

location / {
    proxy_cache mycache;
    proxy_cache_valid 200 10m;
}

2. Redis(内存缓存)

maxmemory 2gb
maxmemory-policy allkeys-lru

五、常见需求对照

需求 建议
提高读性能 利用 Page Cache,不手动清理
降低 IO 延迟 调整 dirty_* 参数
防止 OOM 降低 swappiness
Web 加速 Nginx / CDN 缓存
数据库加速 Redis / 查询缓存

如果你能说明:

  • 是 系统缓存 / 应用缓存 / 数据库缓存
  • 使用场景(Web / 数据库 / 文件服务器)
  • 发行版(CentOS / Ubuntu 等)

我可以给你更精确的配置方案。

0 踩