Linux - buff和cache的区别
创始人
2024-05-30 21:23:27
0

free -h命令可以查看内存的使用情况

[root@zabbix-server ~]# free -htotal        used        free      shared  buff/cache   available
Mem:           1.8G        432M        894M         10M        492M        1.2G
Swap:          2.0G          0B        2.0G

为什么free 比 available要小?

free = total - used - shared - buff/cache

available=total -used

为什么需要buff/cache?

计算机三大核心组件:cpu,内存,硬盘

cpu的吞吐量每秒可以达到1000G以上

        每秒可以写入1000G的数据,同时可以往外吐1000G的数据

内存的吞吐率比cpu要低很多,虽然比cpu吞吐率低,但是也有每秒几千MB/s

硬盘的吞吐率:例如sata接口的硬盘吞吐率最大600MB/s ,

硬盘上存储了大量的程序,一个程序要执行,首先要把数据从硬盘读到内存,然后从内存读到CPU,cpu进行逻辑运算,然后将运算结果返回给内存,内存再写入硬盘,CPU是不能直接从硬盘读取数据的,原因之一就是CPU和硬盘之间的吞吐率差距太大了,CPU直接从硬盘读取数据效率太低了,此外,CPU在进行运算的时候是有会产生很多临时数据的,如果CPU先把数据写到内存再写到硬盘,内存中是有回收机制的,会自动清理掉临时数据,如果直接写入硬盘,那么临时数据也会写入硬盘保存起来,要清理只能手动清理,种种原因下,CPU是不会直接写数据到硬盘的。

 虽然CPU不直接将数据写入硬盘,但是CPU,内存,硬盘之间的吞吐率还是十分不对等,于是buff和cache就发挥了作用

内存的吞吐率由几千MB/s,而硬盘(sata)的吞吐率600M/s,内存往硬盘里面写数据的时候,处在内存和硬盘之间的buff缓冲区就起到了作用,内存往外吐数据的速度是很快的,硬盘往里面写的数据是很慢的,如果直接写的话肯定是会堵塞的,假设内存往硬盘写数据的速度是6000MB/s而硬盘往里面写数据的速度是600MB/s,那么数据肯定是不能及时写入的,如果一直就这么等待写入,数据是肯定有丢失的风险的,buff缓冲区就起到了一个水池的作用,内存先将数据写入缓冲区,然后再慢慢的写入硬盘,当然buff缓冲区的容量也是有极限的,如果一个程序产生了大量的数据将缓冲区也填满了的话,那就只能等待慢慢写入了。所以buff缓冲区就在内存和硬盘之间的一个不同吞吐率起到了一个平衡作用。

cache缓存区与buff缓冲区的方向相反, 内存写入数据的速度是很快的,但是硬盘往外面吐数据的数据相对来说还是比较慢的,如果内存一直等着硬盘将程序的数据读出来,那么程序就会一直处于等待状态,程序就会处于很卡的状态,影响程序的执行效率,cache缓存就是为了解决这个问题的,将经常需要从硬盘中读出的数据提前将它放到cache缓存区里面,然后内存需要数据的时候直接从cache缓存区获取数据,这样就能降低内存载入数据的时间,从而提高程序的执行效率。

 

 

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...