【问题标题】:Page cache vs L1 cache?页面缓存与 L1 缓存?
【发布时间】:2021-09-30 03:35:14
【问题描述】:
我正在阅读:https://en.wikipedia.org/wiki/Page_cache
在计算中,页缓存,有时也称为磁盘缓存,[1] 是
来自辅助存储的页面的透明缓存
硬盘驱动器 (HDD) 或固态驱动器 (SSD) 等设备。
操作系统在其他未使用的部分保留页面缓存
主存储器 (RAM),从而更快地访问内容
缓存页面和整体性能改进。
是否有类似的技术可以将频繁访问的 RAM 部分保存在 L1、L2 和 L3 缓存中以提高性能?
我不知道那里保存了什么样的信息,什么缓存?
【问题讨论】:
标签:
linux
caching
memory
memory-management
operating-system
【解决方案1】:
是的,它们被称为硬件/CPU 缓存。它们存储“高速缓存行”,通常为 64 字节,是从 RAM 中提取并存储以供 CPU 更近/更快访问的内存片段。这通常在幕后进行,因为它是在硬件中处理的,因此您通常无法修改它,操作系统也无法直接访问其内容。但是,您可以使用 flush_cache_ family of 函数刷新内容。
页面缓存的目的是相似的:通过存储可能很快使用的内存来加速未来的访问。它通常处理大小为 4KB 的内存页面,并将内存从磁盘加载到 RAM 中。它是操作系统级别的缓存。 Linux 内核完全控制页面缓存的工作方式,您可以在源代码中自行修改。如果您想了解更多关于存储在页面缓存中的内容,请查看this discussion。