前沿追踪 怎么理解内存中的Buffer和Cache?
1|0缓存
manprocBuffers对原始磁盘块的临时存储 , 也就是用来缓存磁盘的数据 , 通常不会特别大(20MB左右)内核就可以把分散的写集中起来 , 统一优化磁盘的写入 , 比如 , 可以把多次小的写合并成单次大的写等等Cached从磁盘读取文件的页缓存 , 也就是用来缓存从文件读取的数据这样 , 下次访问这些文件数据时 , 就可以直接从内存中快速获取 , 而不需要再次访问缓慢的磁盘 。 SReclaimable是Slab的一部分Slab包括两部分 , 其中的可回收部分 , 用SReclaimable记录;而不可回收部分 , 用SUnreclaim记录灵魂拷问Buffers能不能缓存磁盘中读的数据?Cached能不能缓存磁盘中写的数据?为了验证上面的问题 , 会通过案例来展开描述
4|0Buffer和Cache在不同场景下的使用情况系统配置操作系统:Ubuntu18.04机器配置:2CPU , 8GB内存预先安装sysstat包aptinstallsysstat打开两个终端连接到Ubuntu系统上4|1前期准备【前沿追踪 怎么理解内存中的Buffer和Cache?】为了减少缓存的影响 , 在第一个终端中 , 运行下面的命令来清理文件页、目录项、Inodes等各种缓存
echo3>/proc/sys/vm/drop_caches5|0场景一:磁盘和文件写案例5|1文件写场景第一个终端运行vmstatvmstat1
推荐阅读
