指定的缓存区在哪里,怎么找缓存路径

首页 > 实用技巧 > 作者:YD1662024-02-03 00:56:39

缓冲区的主要目的是进行流量整形,将大量的小规模I/O组织成稳定的少量大规模I/O,从而减少响应次数。换句话说,缓冲区用于平衡系统两端的处理速度。比如你不能用一点点数据写入硬盘,而是积累一定量的数据,一起写入一个块。


cache和buffer的存储结构不同。

指定的缓存区在哪里,怎么找缓存路径(1)

缓冲区是一块内存,用于存储与外部存储器交换的数据。CPU 不能直接与外部存储器通信。对于外部存储器,读写速度要慢得多。缓冲区用于存储两个不同速度或不同优先级的设备之间的数据传输。因此,缓冲区可以减少进程间通信的等待时间当存储速度较快的设备与存储速度较慢的设备通信时。为了从存储速度较慢的设备存储数据,系统会先将数据存储在缓冲区中,然后在存储速度较快的设备达到一定级别时再读取缓冲区数据。同时,存储速度更快的设备可以完成其他任务。

例如,二进制地形 (BT) 格式用于存储高程网格。BT下载需要较长时间挂机,电脑可能24小时连续运行,但是BT下载的数据是零散的,这也体现在硬盘写入上,因为硬盘是机械寻址设备。这种碎片化的写入会导致硬盘长期高负荷机械运动,导致硬盘过早老化和损坏。因此,新发布的BT软件将缓冲区的概念应用于内存。数据暂时写入缓冲区,最大到一定大小(512M),然后一次性写入硬盘。这种方法大大减少了硬盘的高负荷机械运动。

例如,如果您在线观看视频,视频播放器会在开始时将几秒钟的视频资源预加载到缓冲区中。您消耗视频的速率是视频资源的正常播放。在这种情况下,视频可以流畅播放。如果网速强,会下载更多的视频资源并积累,直到缓冲区满,暂时停止加载,等待部分缓冲区清空,重新开始加载。即使视频的下载速度波动,您观看的视频在播放速率方面也是稳定的。

例如,当您有资源写入硬盘时,硬盘的最小写入大小通常是一个块,通常为 4KB。所以,4KB的数据会先存入缓冲区,然后再写入硬盘,而不是每次都准备一个字节的数据。此时,磁盘以每次 4KB 的速率消耗数据。

在网络连接过程中,由于网络速度的原因,内核中维护的传输控制协议(TCP) 连接可能有大量数据写入 TCP 缓冲区。这是因为socket对应的应用程序可能无法及时消费数据。

缓存是介于 CPU 和内存之间的一种存储,通过考虑 CPU 和内存的读写速度,根据局部性原则分配数据来增加访问时间。例如,对于空间局部性,系统会将数据添加到内存块旁边的缓存中。对于时间局部性,将应用最不常用(LFU)来从缓存中删除数据。

指定的缓存区在哪里,怎么找缓存路径(2)

读缓冲区和写缓冲区

指定的缓存区在哪里,怎么找缓存路径(3)

读缓冲区的数据并不总是有效的,而是实时生成的。每当缓冲区已满或缓冲区被主动刷新时,都会触发读取。对于小数据,这样可以减少读取次数。对于大数据,这个读取的数据量是根据缓冲区大小进行归一化的。这意味着必须首先读取馈送到缓冲区的数据。这是一个明显的顺序访问功能。

写缓冲区是对应的读缓冲区。对于小数据写入,需要填满写缓冲区。对于大数据,大数据会被划分成缓冲区大小,分批写入。对于特定设备,一次写入 4K 是最有效的。将小数据累积到缓冲区中的4K,一次写入或将大数据分成4K为每个分片,多次写入。

各种缓冲技术

单缓冲

指定的缓存区在哪里,怎么找缓存路径(4)

首页 12下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.