我将购买一套新的高端系统,并且我想更好地了解双处理器 Xeon 系统(我正在考虑新的高端 Xeon E5-2687W)是否能够通过 L3 缓存加倍(每个 CPU 20 MB)真正提供明显的性能提升。
(这是由于内核和 RAM 加倍而偶尔产生的额外优势之外的。)
我的使用场景大致是,我有许多后台应用程序随时运行 - 3 或 4 个数据压缩/备份应用程序、一个影响较小的 Web 服务器、任何给定时间的一两个虚拟机(通常相当空闲),以及大约 20 个实用程序,这些程序使用了相当一部分(但很小)的 CPU 内核。总的来说,当我没有积极使用计算机时,我当前的 i7-970 6 核(12 线程)系统中大约使用了总 CPU 功率的 25%。
我在日常工作的时候,CPU利用率经常超过50%,有时候甚至会达到75%-80%。
Xeon E5-2687W 不仅是第二代 i7(因此性能应该会有所提升),而且拥有 8 个内核(16 个线程),而不是 6 个内核。因此,我预计 CPU 占用率达到 75% 的频率会更低。不过,将内核和 RAM 增加一倍的能力是一个考虑因素。
但是,最终,我相信这个决定取决于 L3 缓存增加一倍是否会带来明显的改进。关于 CPU 性能,有很多基准测试和大量讨论。但是,我发现很少有关于 L3 缓存利用率的讨论,以及 L3 缓存的增加(例如使用双处理器将其增加一倍)如何影响性能。
例如:如果只有二进程正在运行,但每个进程都受益于较大的 L3 缓存(例如,频繁扫描文件系统的后台进程可能就是这种情况),也许双 CPU 的整体系统性能可能会显着提高 - 即使每个 CPU 上只有一个核心处于活动状态 - 因为每个进程都有两倍的有效 L3 缓存。
我希望有人能够了解增加(或加倍) L3 缓存大小的好处。
注意:我正在考虑的 CPU(Xeon E5-2687W)有 20 MB L3 缓存,因此具有双 CPU 的系统将有 40 MB L3 缓存。
答案1
与缓存问题一样,答案是“这完全取决于你的工作量”。只有当你正在运行的进程花费大量时间访问内存时,缓存才有用和表现出明显的内存寻址参考局部性(并且对每个核心存在的较小的 L1/L2 缓存不满意)。
在不同线程中运行大量进程会增加共享缓存发生抖动的几率,从而降低原本可以实现的性能提升。这也是随着核心数量的增加而增加缓存大小的原因 - 运行的内存竞争线程越多,共享缓存可能需要越大才能发挥作用。
有一篇比较老的文章来自汤姆五金比较了两款旧 P4 芯片在渲染/图形工作量方面的表现,它们分别带有和不带有 L3 缓存。这些数字和整个基准测试一样糟糕,但它很好地解释了缓存架构,尤其是 L3 缓存。
底线:您可能不会注意到差异,但如果您需要精确的数字,您必须购买两个 CPU 并在两者上运行工作负载以比较运行时间。
答案2
有人说“L3 缓存仅增加 20 MB”,他们根本不知道他们在说什么。对于给定的架构,缓存大小的合理增加可能会导致性能的合理提升,即使在平均负载下也是如此。当您考虑在 sandy bridge 和 ivy bridge 处理器中实现的 turbo boost 架构时,情况就更是如此了。
我有机会在 x86/x86_64 架构的几个不同阶段亲自试验了这一点:Sempron 与 Athlon、Celeron 与 Pentium 4、Pentium4 与 Athlon、Pentium4-m 与 Pentium-m、Pentium 4 与 Xeon、i7 与 Xeon E5。每当缓存更大时(通常是两倍或几乎两倍)。
缓存翻倍的成本是否可承受,取决于您。但 Xeon 的稳定性更好,因为它们支持 ECC 内存和此类技术,这在某些应用中显然是必不可少的(例如,我的情况是铝压铸的 3D 模拟)。
答案3
从你对自己所做工作的描述以及你当前系统如何处理它,我只能想知道你为什么要更换它。 L3 缓存最多只能带来一点点提升,但代价很高,但在你描述的用例中,你不能指望仅仅增加 20MB 的 L3 缓存就能带来任何变化。