在 Linux 中,“缓存配置”可能涉及多个层面,常见的包括:磁盘缓存(Page Cache)、DNS 缓存、应用层缓存(如 Nginx/Redis)、包管理缓存等。下面按常见场景给你一个系统性的说明。
Linux 默认会利用空闲内存作为文件缓存(Page Cache),一般不需要手动配置,而是由内核自动管理。
free -h
# 或
cat /proc/meminfo | grep -E "Cached|Buffers"
# 释放 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
⚠️ 生产环境不建议频繁释放
# 控制 swappiness(0–100,越低越不愿用 swap)
sysctl vm.swappiness=10
# 持久化
echo "vm.swappiness=10" >> /etc/sysctl.conf
Linux 默认不缓存 DNS,需要额外服务。
# 查看状态
systemctl status systemd-resolved
# 配置文件
/etc/systemd/resolved.conf
示例:
[Resolve]
Cache=yes
DNS=8.8.8.8
apt install nscd # Debian/Ubuntu
yum install nscd # CentOS
# 配置
/etc/nscd.conf
location ~* \.(jpg|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m;
location / {
proxy_cache my_cache;
proxy_pass http://backend;
}
apt install redis
配置 /etc/redis/redis.conf:
maxmemory 512mb
maxmemory-policy allkeys-lru
/var/cache/apt/archives/var/cache/yumapt clean
yum clean all
可以告诉我:
我可以给你更精确的配置示例。