热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux系统中高效解决高Buff/Cache占用问题

本文详细探讨了在Linux系统中遇到的高Buff/Cache占用问题及其解决方案,提供了手动清除与定时任务自动化处理的方法。

前言:本文旨在深入解析Linux系统中Buff/Cache占用过高的现象,并提供有效的解决方案,帮助用户更好地管理和优化系统性能。




> free -h


理解Buff与Cache


在Linux操作系统中,'buff'和'cache'主要用于提高系统的读写效率。'buff'通常指的是用于存储文件系统元数据的缓存,而'cache'则是指用于加速数据访问速度的数据缓存。


如何释放Buff/Cache


手动释放方法

> sync
> echo 1 > /proc/sys/vm/drop_caches
> echo 2 > /proc/sys/vm/drop_caches
> echo 3 > /proc/sys/vm/drop_caches



  • sync命令用于将所有未写入的数据从内存同步到磁盘,确保数据安全。

  • echo 1 > /proc/sys/vm/drop_caches用于清除Page Cache,即文件数据缓存。

  • echo 2 > /proc/sys/vm/drop_caches用于清除Slab Cache,这包括了目录项缓存和inode缓存等,这些缓存用于提高文件系统操作的速度。

  • echo 3 > /proc/sys/vm/drop_caches同时清除Page Cache和Slab Cache,全面释放内存资源。


自动化定期清理

为了确保系统长期稳定运行,可以设置定时任务来自动清理缓存:

> vim clean.sh
#!/bin/bash
# 每两小时执行一次缓存清理
echo "开始缓存清理"
sync; sync; sync # 确保所有数据同步到磁盘
sleep 20 # 延迟20秒,保证数据完全写入
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
> chmod +x clean.sh
> crontab -e
# 每两小时执行一次
0 */2 * * * /opt/clean.sh



  • 确保crond服务已启动并设置为开机自启:

  • systemctl start crond.service

  • systemctl enable crond.service

参考资料:原文章链接
关注微信公众号:入门小站,获取更多技术分享。


推荐阅读
author-avatar
亲爱的常青藤先生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有