今天项目出现问题,进分析原因是系统缓存占用过高,导致程序不能正常服务,故需要编写清理系统缓存的脚本,在讲解清理缓存之前呢,需要明白缓存buffer/cache。
在linux系统,对文件的读写都需要buffer和cache两种缓存配合使用,buffer即buffer cache内存块,保存文件的metadata元数据、属性、权限和目录信息,cache即page cached 页面缓存,用来缓存打开文件的内容,在读取文件的时候,首先会在页面缓存中查找,有就直接从page cache中读取写入,没有会在文件系统中查找并把文件属性权限缓存到buffer内容缓存到page cache,再次操作此文件时会在buffer查找文件属性,从page cache获取文件内容, 提io操作的效率,故IO越大缓存使用越高。
Linux自带的缓存清理机制,就是当系统缓存块使用尽的时候才会触发系统清理缓存操作,一般IO过高,缓存飘升,此时就需要清理缓存,供其他程序使用,Linux提供了手动触发清楚缓存的方法:
1、查看系统缓存使用情况
free -m
2、仅清除页面缓存PageCache命令:
echo 1 > /proc/sys/vm/drop_caches
3、仅清除文件目录缓存bufferCache命令:
echo 2 > /proc/sys/vm/drop_caches
4、清理PageCache和BufferCache命令:
echo 3 > /proc/sys/vm/drop_caches
最后
以上就是凶狠水池最近收集整理的关于清理linux服务器内存buffer/cache的全部内容,更多相关清理linux服务器内存buffer/cache内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复