在 Linux 中,“缓存”通常指 Page Cache / Buffer Cache / dentries & inodes 缓存。这些缓存正常情况下不应该手动频繁释放,因为 Linux 会自动在内存紧张时回收。但在测试、排障或特殊场景下,可以手动释放。
free -h
或
cat /proc/meminfo | grep -E "MemFree|Buffers|Cached"
sync
echo 1 > /proc/sys/vm/drop_caches
sync
echo 2 > /proc/sys/vm/drop_caches
sync
echo 3 > /proc/sys/vm/drop_caches
⚠️ 说明:
sync:先把脏数据写回磁盘,防止数据丢失drop_caches 不会杀进程、不会释放 used 内存中的程序数据| 值 | 作用 |
|---|---|
| 1 | 释放 page cache |
| 2 | 释放 slab(目录项、inode) |
| 3 | 释放 1 + 2 |
# 临时
sysctl vm.drop_caches=3
# 永久(不推荐)
echo "vm.drop_caches=3" >> /etc/sysctl.conf
因为这些缓存能显著提升性能。
这是正常现象:
used 高 + cached 高 = 健康
只有当 free 很低且 swap 大量使用时才需要关注。
如果你能补充:
我可以给你更合适的建议。