侧边栏壁纸
博主头像
菜鸟驿站 博主等级

梦想还是要有的,万一实现了呢

  • 累计撰写 8 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux缓存内存释放方法

管理员
2025-07-09 / 0 评论 / 0 点赞 / 15 阅读 / 0 字

Linux中buff/cache占用过高的解决方法

在Linux系统中,buff/cache占用较高内存是正常现象,这是Linux内存管理机制的优化设计。但当需要释放这些缓存时,可以采取以下方法:

理解buff/cache

  • Buffers:内核缓冲区使用的内存,主要与块设备I/O相关

  • Cache:页面缓存和slab缓存,用于加速文件访问

查看内存使用情况

free -h
# 或
cat /proc/meminfo

手动释放缓存方法

1. 释放pagecache

echo 1 > /proc/sys/vm/drop_caches

2. 释放dentries和inodes

echo 2 > /proc/sys/vm/drop_caches

3. 释放pagecache, dentries和inodes

echo 3 > /proc/sys/vm/drop_caches

4. 同步后释放(推荐)

sync && echo 3 > /proc/sys/vm/drop_caches

自动清理配置

修改/etc/sysctl.conf文件,添加以下内容:

vm.vfs_cache_pressure=100
vm.swappiness=10

然后执行:

bash

sysctl -p

注意事项

  1. 释放缓存可能会导致系统性能暂时下降,因为系统需要重新加载被清除的缓存

  2. 生产环境中不建议频繁手动释放缓存,除非有特殊需求

  3. 当应用程序需要更多内存时,Linux会自动释放buff/cache

长期解决方案

如果系统持续出现内存不足问题,应考虑:

  • 增加物理内存

  • 优化应用程序内存使用

  • 调整swappiness参数

  • 识别并停止内存泄漏的进程

这些方法可以帮助您管理和控制Linux系统中的buff/cache使用情况。

总结

参数

作用

推荐值

影响

vm.vfs_cache_pressure

控制 dentry/inode 缓存回收速度

100(默认)

值越大,回收越快

vm.swappiness

控制 swap 使用倾向

10(服务器推荐)

值越小,越少用 swap

sysctl -p

使配置生效

-

立即应用,无需重启

如果你的机器内存充足,这样配置可以 减少 swap 使用,提高性能,同时保持合理的缓存管理。

0

评论区