在 Linux 中,“缓存”通常指 页缓存(Page Cache)、目录项缓存(dentry) 和 inode 缓存,由内核自动管理。一般不需要手动设置,但可以根据需求进行查看、调优、清理或限制。
下面按常见场景说明:
free -h
或
cat /proc/meminfo | grep -E "Cached|Buffers|MemFree"
Cached:文件缓存Buffers:块设备缓存Available:真正可用内存# 清理 pagecache
echo 1 > /proc/sys/vm/drop_caches
# 清理 dentries + inodes
echo 2 > /proc/sys/vm/drop_caches
# 全部清理
echo 3 > /proc/sys/vm/drop_caches
⚠️ 需要 root 权限,且会导致性能短暂下降。
# 查看
sysctl vm.dirty_ratio
sysctl vm.dirty_background_ratio
# 修改(示例)
sysctl -w vm.dirty_ratio=10
sysctl -w vm.dirty_background_ratio=5
dirty_ratio:内存中脏页最大比例(强制写盘)dirty_background_ratio:后台开始写盘的比例持久化:
vim /etc/sysctl.conf
vm.dirty_ratio=10
vm.dirty_background_ratio=5
sysctl -p
sysctl vm.swappiness
sysctl -w vm.swappiness=10
10使用 cgroup 或:
ulimit -m
如果你说的是 程序缓存(如 Redis、Nginx、APT):
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m;
apt-get clean
docker system prune
❌ “缓存占内存 = 内存不够”
✅ Linux 会自动回收缓存给程序使用
如果你具体指的是:
可以告诉我,我给你更精准的配置方案。