1|0缓存
Buffers:内核缓冲区用到的内存 , 对应的是/proc/meminfo中的Buffers值Cache:内核页缓存和Slab用到的内存 , 对应的是/proc/meminfo中的Cached与SReclaimable之和注意事项同一个指标的具体含义 , 就可能因为内核版本、性能工具版本的不同而有挺大差别所以百度Buffer和Cache什么意思可能并不适用于你当前的环境所以可以通过下面说的proc文件系统来确认它们的含义3|0proc文件系统再次回顾proc/proc是Linux内核提供的一种特殊文件系统 , 是用户跟内核交互的接口比方说 , 用户可以从/proc中查询内核的运行状态和配置选项 , 查询进程的运行状态、统计数据等 , 也可以通过/proc来修改内核的配置proc文件系统同时也是很多性能工具的最终数据来源3|1了解Buffer和Cache查看帮助文档 , 找到它们
manprocBuffers对原始磁盘块的临时存储 , 也就是用来缓存磁盘的数据 , 通常不会特别大(20MB左右)内核就可以把分散的写集中起来 , 统一优化磁盘的写入 , 比如 , 可以把多次小的写合并成单次大的写等等Cached从磁盘读取文件的页缓存 , 也就是用来缓存从文件读取的数据这样 , 下次访问这些文件数据时 , 就可以直接从内存中快速获取 , 而不需要再次访问缓慢的磁盘 。 SReclaimable是Slab的一部分Slab包括两部分 , 其中的可回收部分 , 用SReclaimable记录;而不可回收部分 , 用SUnreclaim记录灵魂拷问Buffers能不能缓存磁盘中读的数据?Cached能不能缓存磁盘中写的数据?【怎么理解内存中的Buffer和Cache?】为了验证上面的问题 , 会通过案例来展开描述
4|0Buffer和Cache在不同场景下的使用情况系统配置操作系统:Ubuntu18.04机器配置:2CPU , 8GB内存预先安装sysstat包aptinstallsysstat打开两个终端连接到Ubuntu系统上4|1前期准备为了减少缓存的影响 , 在第一个终端中 , 运行下面的命令来清理文件页、目录项、Inodes等各种缓存
echo3>/proc/sys/vm/drop_caches5|0场景一:磁盘和文件写案例5|1文件写场景第一个终端运行vmstatvmstat1结果分析从dd命令开始运行时 , cache不断增加 , 而buff基本不变(看蓝色向下箭头)在cache刚开始增长时 , 块设备I/O很少 , bi、bo都是0KB , 而在之后才出现大量的块设备写 , bo变成了98384当dd命令结束后 , cache不再持续性增长 , 但块设备写还会持续一段时间 , 并且多次I/O写的结果加起来(bo蓝色框) , 就是dd要写的500M的数据5|2磁盘写场景前提条件需要你的系统配置多块磁盘 , 并且磁盘分区/dev/sdb1还要处于未使用状态如果你只有一块磁盘 , 千万不要尝试 , 否则将会对你的磁盘分区造成损坏第二个终端运行ddecho3>/proc/sys/vm/drop_caches#然后运行dd命令向磁盘分区/dev/sdb1写入2G数据ddif=/dev/urandomof=/dev/sdb1bs=1Mcount=2048第一个终端运行vmstat , 观察内存和I/O的变化情况结果分析读取文件时(也就是bi大于0时) , Buffer保持不变 , 而Cache则在不停增长这跟查到的定义【Cache是对文件读的页缓存】是一致的6|2磁盘读场景第二个终端运行dd读取磁盘echo3>/proc/sys/vm/drop_caches#运行dd命令读取文件ddif=/dev/sda1of=/dev/nullbs=1Mcount=1024第一个终端运行vmstat观察内存和I/O变化情况结果分析读磁盘时(也就是bi大于0时) , Buffer和Cache都在增长 , 但显然Buffer的增长快很多这说明读磁盘时 , 数据缓存到了Buffer中7|0总结Buffer和Cache的说明Buffer既可以用作将要写入磁盘数据的缓存 , 也可以用作从磁盘读取数据的缓存Cache既可以用作从文件读取数据的页缓存 , 也可以用作写文件的页缓存总结:Buffer是对磁盘数据的缓存 , 而Cache是文件数据的缓存 , 它们既会用在读请求中 , 也会用在写请求从读写角度总结Buffer和Cache缓存磁盘和文件系统的读写数据从写的角度来说 , 不仅可以优化磁盘和文件的写入 , 对应用程序也有好处 , 应用程序可以在数据真正落盘前 , 就返回去做其他工作从读的角度来说 , 既可以加速读取那些需要频繁访问的数据 , 也降低了频繁I/O对磁盘的压力
推荐阅读
-
-
土豆■几款常见家常菜,烹饪方法全部在此,学会不用叫外卖了!
-
硕士 澳洲名校悉尼大学研究生课程设置及申请要求解析
-
-
吉林教育电视台|2020年7月四六级成绩28号可以查询!查分方式有了新变化!
-
「暗物质」反物质、暗物质、暗能量之间是什么关系?来带你重新认识这三者
-
过往年少|安兔兔公布6月安卓手机性能榜!骁龙865霸榜高端天玑820中端最强
-
「解救不开心哦」都说像她老公,闺蜜很郁闷,我说那不是更好,闺蜜生了一个儿子
-
三星堆究竟隐藏着什么秘密? 或许考古学家已经接近真相了
-
小可讲事|李世民为什么不着急?生死簿中早已说明一切,唐僧取经14年不见人
-
[针织开衫]寒露来袭,这“针织开衫”配半身裙不要太美,上身超有质感
-
海外网|菅义伟计划对厚生劳动省进行改革 创设"数码厅"
-
搞笑的笑话|家有外甥女七岁,正是淘气的年纪,经典爆笑闺女糗事笑话
-
海外资金|行情震荡!深受外资青睐的35只大蓝筹(名单)一览,均是龙头
-
-
-
蒋劲夫近况曝光,“白天收破烂,晚上送外卖”,31岁活得狼狈不堪
-
中新经纬|银保监会:前8个月银行业新增人民币贷款投放14.4万亿
-
考古|古墓中出土的五样东西最好不要碰,前三件太邪性!收藏需谨慎
-
唐诗|唐朝最能喝酒的诗人,不是李白,而是王勃爷爷的弟弟,唐诗的先驱