设为首页 收藏本站
查看: 1319|回复: 0

[经验分享] Linux下的buffer与cache

[复制链接]

尚未签到

发表于 2018-5-18 07:11:40 | 显示全部楼层 |阅读模式
     最近在做监控项目的时候,有同事跟我说“你看Linux性能也不好嘛,内存使用率总是达到80%,我在windows下也没这种状况”,我跟他解释,因为Linux系统,是尽可能的使用内存,内存不是拿来看的,是需要拿来用的,而对于windows,无论你的windows内存是多少,它还是会用硬盘交换文件来读(即使内存空间还有很多空余),而对于Linux,在查看内存使用率的时候,只要没有用到swap空间,我们就认为内存暂时不会紧缺。
   Linux平台中页面缓存的行为策略,即Linux将尽可能地利用更多的内存来转送页面缓存,换而言之:
  无论在磁盘上读取什么数据,只要该数据在页面缓存上不存在,并且有空余的内存空间,就在页面缓存中建立新的缓存(而不是替代旧的缓存)。
  那Linux下的buffer与cache到底是什么?又有什么区别了,下面我们简单做下介绍。
  [root@kvm02 postfix]# free -m
                total        used        free      shared  buff/cache   available
  Mem:           3774         375        2592           9         807        3106
  Swap:          3967           0        3967
  可以内存=free+buffers+cached

buffer:缓冲将数据缓冲下来,解决速度慢和快的交接问题;速度快的需要通过缓冲区将数据一点一点
传给速度慢的区域。例如:从内存中将数据往硬盘中写入,并不是直接写入,而是缓冲到一定大小之后
刷入硬盘中。
A buffer is something that has yet to be "written" to disk.
cache:缓存实现数据的重复使用,速度慢的设备需要通过缓存将经常要用到的数据缓存起来,缓存下
来的数据可以提供高速的传输速度给速度快的设备。例如:将硬盘中的数据读取出来放在内存的缓存区
中,这样以后再次访问同一个资源,速度会快很多。
A cache is something that has been "read" from the disk and stored for later use.  小结:

a、buffer是用于存放将要输出到disk(块设备)的数据,而cache是存放从disk上读出的数据。二者
都是为提高IO性能而设计的。
b、从本质上讲,Buffer是“缓冲”,而Cache是“缓存”,即Buffer中的数据是一定要在短时间内被
处理的,而Cache则可以作为一个数据的长期的容器而其中的数据不一定非要被立刻处理
c、# cat /proc/sys/vm/drop_caches
0 //默认是0;1-清空页缓存;2-清空inode和目录树缓存;3-清空所有缓存
echo 3>/proc/sys/vm/drop_caches  

  

  参考资料:https://www.zhihu.com/question/26190832
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-461480-1-1.html 上篇帖子: Linux学习日记(一) 下篇帖子: linux pagecache与内存占用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表