问题描述
我正在阅读:https://en.wikipedia.org/wiki/Page_cache
在计算中,页面缓存,有时也称为磁盘缓存,[1] 是一个 来自二级存储的页面的透明缓存 设备,例如硬盘驱动器 (HDD) 或固态驱动器 (SSD)。 操作系统在其他未使用的部分保留页面缓存 主存储器 (RAM),从而更快地访问内容 缓存页面和整体性能改进。
是否有类似的技术可以将经常访问的 RAM 部分保存在 L1、L2 和 L3 缓存中以提高性能?
我不知道那里保存了什么样的信息,什么缓存?
解决方法
是的,这些被称为硬件/CPU 缓存。它们存储“缓存行”,通常为 64 字节,是从 RAM 中提取并存储的内存片段,以便 CPU 进行更近/更快的访问。这通常是在幕后进行的,因为它是在硬件中处理的,您通常无法修改它,操作系统也不能直接访问其内容。但是,您可以使用 flush_cache_
family 的函数刷新内容。
页面缓存的目的类似:通过存储可能很快使用的内存来加速未来的访问。它通常处理大小为 4KB 的内存页,并将从磁盘加载到 RAM 的内存保存。它是一个操作系统级缓存。 Linux 内核可以完全控制页面缓存的工作方式,您可以在源代码中自行修改。如果您想详细了解页面缓存中存储的内容,请查看 this discussion。
,页面缓存是指保存磁盘内容的 RAM,因为我们知道磁盘比 RAM 访问慢很多倍。这种内容管理完全由软件完成,操作系统决定在页面缓存中保留什么内容以及保留多长时间。
另一方面,L1/L2/L3 缓存与处理器内存有关,与 RAM 访问相比,它可以将内容从 RAM 中保存下来,以便更快地访问。
文章详细介绍了页面缓存 https://manybutfinite.com/post/page-cache-the-affair-between-memory-and-files/