温馨提示×

linux缓存怎么配置

小樊
36
2026-09-24 21:13:32
栏目: 智能运维

在 Linux 中,“缓存配置”可能涉及多个层面,常见的包括:磁盘缓存(Page Cache)、DNS 缓存、应用层缓存(如 Nginx/Redis)、包管理缓存等。下面按常见场景给你一个系统性的说明。


一、Linux 磁盘缓存(Page Cache)

Linux 默认会利用空闲内存作为文件缓存(Page Cache),一般不需要手动配置,而是由内核自动管理。

1. 查看缓存使用情况

free -h
# 或
cat /proc/meminfo | grep -E "Cached|Buffers"

2. 手动释放缓存(仅调试/特殊场景)

# 释放 pagecache
sync; echo 1 > /proc/sys/vm/drop_caches

# 释放 dentries + inodes
sync; echo 2 > /proc/sys/vm/drop_caches

# 全部释放
sync; echo 3 > /proc/sys/vm/drop_caches

⚠️ 生产环境不建议频繁释放

3. 调整内核缓存行为(高级)

# 控制 swappiness(0–100,越低越不愿用 swap)
sysctl vm.swappiness=10

# 持久化
echo "vm.swappiness=10" >> /etc/sysctl.conf

二、DNS 缓存配置

Linux 默认不缓存 DNS,需要额外服务。

1. systemd-resolved(常见)

# 查看状态
systemctl status systemd-resolved

# 配置文件
/etc/systemd/resolved.conf

示例:

[Resolve]
Cache=yes
DNS=8.8.8.8

2. nscd(传统)

apt install nscd   # Debian/Ubuntu
yum install nscd   # CentOS

# 配置
/etc/nscd.conf

三、Web 服务缓存(Nginx 示例)

Nginx 静态文件缓存

location ~* \.(jpg|css|js)$ {
    expires 30d;
    add_header Cache-Control "public";
}

Nginx 代理缓存

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

location / {
    proxy_cache my_cache;
    proxy_pass http://backend;
}

四、Redis / Memcached(应用缓存)

Redis 示例

apt install redis

配置 /etc/redis/redis.conf:

maxmemory 512mb
maxmemory-policy allkeys-lru

五、包管理缓存

  • apt:/var/cache/apt/archives
  • yum/dnf:/var/cache/yum
  • 清理:
apt clean
yum clean all

六、你具体想配置哪种缓存?

可以告诉我:

  • ✅ 系统内存缓存?
  • ✅ DNS 缓存?
  • ✅ Nginx / CDN?
  • ✅ 数据库或应用缓存?
  • ✅ 服务器性能优化?

我可以给你更精确的配置示例。

0 踩