linux的cache与buffer的缓存过高的解决办法

cache与buffer

服务器跑一段时间就会出现cache/buffer过高的情况,如下:
在这里插入图片描述

物理内存			: Mem
交换分区			: Swap
总内存	  			: total
已使用				: used
剩余内存			: free
共享内存			:share
磁盘数据缓存	:buff
文件数据缓存	:cache

解决方法

#echo 1 > /proc/sys/vm/drop_caches
#echo 2 > /proc/sys/vm/drop_caches
#echo 3 > /proc/sys/vm/drop_caches
再free -h 看

在这里插入图片描述
已经free已经达到22G
这是手动操作的方式,需要定期清理;可以采用脚本清理:

#!/bin/bash
sync		#防止内容丢失
echo "1" > /proc/sys/vm/drop_caches		#清理磁盘缓存pagecache。
echo "2" > /proc/sys/vm/drop_caches		#清理文件缓存和inode号.
echo "3" > /proc/sys/vm/drop_caches		#清理磁盘和文件缓存对象。

把脚本任务添加到定时任务即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux内核中,Page CacheBuffer Cache都是用于缓存文件系统数据的机制,但它们的缓存对象和缓存方式不同。 Page Cache是用于缓存文件系统数据块的机制,它缓存的是文件系统中的整个页(通常为4KB)。当应用程序请求访问文件时,内核会首先在Page Cache中查找对应的页,如果找到了就直接返回给应用程序,避免了访问磁盘的开销。如果Page Cache中没有找到对应的页,则内核会从磁盘中读取相应的数据块,并将其缓存到Page Cache中。Page Cache的优点是能够加速对文件的访问速度,提系统的性能。但是,它也会占用系统的内存资源,如果文件系统中的文件过多,Page Cache可能会占用大量的内存资源。 Buffer Cache是用于缓存块设备数据块的机制,它缓存的是块设备中的数据块(通常为512字节或4KB)。当应用程序请求访问块设备时,内核会首先在Buffer Cache中查找对应的数据块,如果找到了就直接返回给应用程序,避免了访问块设备的开销。如果Buffer Cache中没有找到对应的数据块,则内核会从块设备中读取相应的数据块,并将其缓存Buffer Cache中。Buffer Cache的优点是能够加速对块设备的访问速度,提系统的性能。但是,它也会占用系统的内存资源,如果块设备中的数据块过多,Buffer Cache可能会占用大量的内存资源。 因此,Page CacheBuffer Cache都是用于加速对文件系统或块设备的访问速度的机制,它们的区别在于缓存的对象和缓存的方式不同。Page Cache缓存的是文件系统的整个页,Buffer Cache缓存的是块设备的数据块。Page Cache缓存方式是基于文件系统的,Buffer Cache缓存方式是基于块设备的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值