• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Linux中buffcache占用过高解决方案

linux 搞代码 3年前 (2022-03-03) 17次浏览 已收录 0个评论

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。

咱们在应用free -h查看零碎内存的时候,有工夫会发现buff/cache很高

> free -h

available 示意应用程序能够申请到的内存

什么是buff

buff(Buffer Cache)是一种I/O缓存,用于内存和硬盘的缓冲,是io设施的读写缓冲区。依据磁盘的读写设计的,把扩散的写操作集中进行,缩小磁盘碎片和硬盘的重复寻道,从而进步零碎性能。

什么是cache

cache(Page Cache)是一种高速缓存,用于CPU和内存之间的缓冲 ,是文件系统的cache。
把读取过的数据保存起来,从新读取时若命中(找到须要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会依据读取频率进行组织,把最频繁读取的内容放在最容易找到的地位,把不再读的内容一直往后排,直至从中删除。

它们都是占用内存。两者都是RAM中的数据。简略来说,buff是行将要被写入磁盘的,而cache是被从磁盘中读出来的。

目前过程正在理论被应用的内存的计算形式为used-buff/cache,通过开释buff/cache内存后,咱们还能够应用的内存量free+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:将所有未写的零碎缓冲区写到磁盘中,蕴含已批改的i-node、已提早的块I/O和读写映射文件
  • echo 1 > /proc/sys/vm/drop_caches:革除page cache
  • echo 2 > /proc/sys/vm/drop_caches:革除回收slab分配器中的对象(包含目录项缓存和inode缓存)。slab分配器是内核中治理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
  • echo 3 > /proc/sys/vm/drop_caches:革除pagecache和slab分配器中的缓存对象。
    /proc/sys/vm/drop_caches的值,默认为0

定时工作革除

> 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

原文链接:https://rumenz.com/rumenbiji/…
微信公众号:入门小站

【Linux常用命令速查手册】关注【入门小站】,后盾回复 「1001」 自取。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux中buffcache占用过高解决方案

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址