哪个更好?高缓存还是低缓存?

哪个更好?高缓存还是低缓存?

哪个更好?高缓存还是低缓存?它们之间到底有什么区别?

答案1

总是——越多越好。

如果你谈论的是 CPU 缓存,维基百科说得最好-

CPU 缓存是计算机中央处理器用来减少访问内存平均时间的缓存。缓存是一种较小但较快的内存,用于存储最常用主内存位置的数据副本。只要大多数内存访问都是缓存的内存位置,内存访问的平均延迟就会更接近缓存延迟,而不是主内存延迟。

答案2

您的问题中关于高缓存与低缓存的措辞并不常见且含糊不清。

缓存的最初目的是加速磁盘到 RAM 的读取交互,以避免 CPU 进程饥饿,使它们在访问请求的数据之前处于空闲状态。

解释:

  • [1] 缓存的位置/类型,或
  • [2] 缓存量。

对于位置/类型,您有

  • 板载 CPU:对于多 CPU 芯片,您会分配一些内存供所有 CPU 共享,并且会分配一些内存供每个 CPU 专用。除非您正在进行超级计算,否则我的理解是最好最大化共享内存部分。

  • 操作系统共享内存:有未保留的内存,可以根据需要分配给任何新进程。操作系统为基于 RAM 的缓存保留了内存(您可能会看到对段交换和页面交换的引用)。虚拟内存标题下有逻辑内存分配,其中可访问内存的全部范围是物理 RAM 中段的组合(高内存),其余部分则分配给一个或多个物理磁盘分区上通常保留的空间。内存是按进程分配的。内存是按设备分配的。如果磁盘/RAM VM 的比率与 CPU 数据吞吐量相比过高,系统的性能就会受到影响。因此,目前的趋势是使用 RAM 磁盘来提供接近 RAM 的性能,而不是速度慢得多的硬盘驱动器。 使用 RAM 磁盘并不意味着不需要仔细选择要调整的内核参数。

  • 板载磁盘:缓存主要用于处理设备读取请求,但写入缓存用于将写入的数据保存在“磁盘内部 RAM”中,磁盘本身会先扫描这些数据,然后再将其写入驱动器的盘片以满足请求。作为从盘片到计算机接口的中间人,制造商将板载内存放在缓冲区中,并根据最旧的访问进行清除,以减少对同一数据的多次物理访问,从而为新镜像腾出空间。我不知道制造商是否为硬盘驱动器板载缓存提供可调参数。

对于缓存量,

  • 如果缓存太多(类似于 SWAP 太多),系统(操作系统或硬件)将需要更长的时间来完成读取请求,浪费时间在缓存中查找数据,然后再将其努力重定向到实际设备以保证满足请求。
  • 有许多内核参数可以在操作系统级别进行调整以用于缓存;我建议您在决定更改哪些参数以及分配哪些值之前,检查所有与缓存相关的参数。

一些有用的参考资料:

相关内容