25
2025
03
21:46:11

面试题:buff和cache都是缓存,它们有什么区别?

当我们使用free命令在Linux系统中查看内存使用情况时,可以看到buff/cache一栏,它们的都是表示缓存,看为什么不用buff或者cache其中一个来表示呢?

其实buff和cache所表示的含义是不一样的。

下面来看看两都到底什么区别。

(1)buff(Buffer,缓冲区)

Buffer是用于临时存储数据的内存区域,通常用于I/O操作,它的主要目的是提高系统性能,通过减少直接磁盘访问的次数来加快数据读写速度,具体表现如下:

写缓冲:当数据需要写入磁盘时,首先写入缓冲区,然后由操作系统在适当的时候将数据批量写入磁盘,这种方式可以减少磁盘I/O操作的频率,提高写入性能;

读缓冲:当数据从磁盘读取时,操作系统会将数据存储在缓冲区中,以便后续访问时可以直接从缓冲区读取,而不需要再次访问磁盘。

(2)cache (Cache,缓存)

Cache是用于存储频繁访问的数据的内存区域,与缓冲区不同,缓存主要用于加速数据读取操作。主要表现如下:

页面缓存:操作系统会将从磁盘读取的数据存储在页面缓存中,以便后续访问时可以直接从内存中读取,而不需要再次访问磁盘;、

目录缓存:操作系统会将目录信息存储在缓存中,以加快文件系统的访问速度。

(3)对比




Buffer

Cache

用途

缓冲区主要用于临时存储数据,以提高I/O操作的性能

缓存主要用于存储频繁访问的数据,以数据读取速度

数据持久性

缓冲区中的数据最终会写入磁盘

缓存中的数据只是为了加速访问,不一定写入磁盘

(4)Swap扩展

Swap(交换空间)是硬盘上的一个区域,用于在物理内存不足时临时存储不常用的数据。它是虚拟内存的一部分,允许系统在物理内存耗尽时继续运行。

作用:

当物理内存不足时,操作系统会将不常用的数据从内存移动到交换空间,以释放内存用于其他任务,这种探作称为“交换出”(swap out)。当要访问这些数据时,操作系统会将其从交换空间移动回内存,这种操作称为“交换入”(swap in)。

优点:

提供了额外的虚拟内存,使系统在物理内容不足时仍能继续运行,可以访问系统因内存不足而崩溃;

缺点:

交换操作涉及磁盘I/O,速度远低于内存访问速度,因此频繁的交换操作会导致系统性能下降,过多的交换操作可能导致系统变得非常缓慢,甚至出现“交换风暴”(swap storm)。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/9777.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: