在 Linux 中,“设置缓存”可能涉及多个层面,常见的包括:磁盘缓存(Page Cache)、Swap 使用策略、文件系统缓存、应用层缓存(如 nginx、redis) 等。下面按常见场景给你一个清晰指引。
free -h
或
cat /proc/meminfo
关注:
CachedBuffersAvailablecat /proc/sys/vm/swappiness
默认值通常是 60(0–100)
0:尽量不用 swap10:服务器推荐60:默认100:积极使用 swap临时修改:
sysctl vm.swappiness=10
永久修改:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
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
# 清理 pagecache
echo 1 > /proc/sys/vm/drop_caches
# 清理 dentries + inodes
echo 2 > /proc/sys/vm/drop_caches
# 全部清理
echo 3 > /proc/sys/vm/drop_caches
⚠️ 生产环境不建议频繁清理
mount -o noatime,nodiratime /dev/sda1 /data
常用优化参数:
noatimenodiratimebarrier=0(仅特定场景)proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m;
location / {
proxy_cache mycache;
proxy_cache_valid 200 10m;
}
maxmemory 2gb
maxmemory-policy allkeys-lru
| 需求 | 建议 |
|---|---|
| 提高读性能 | 利用 Page Cache,不手动清理 |
| 降低 IO 延迟 | 调整 dirty_* 参数 |
| 防止 OOM | 降低 swappiness |
| Web 加速 | Nginx / CDN 缓存 |
| 数据库加速 | Redis / 查询缓存 |
如果你能说明:
我可以给你更精确的配置方案。