英特尔傲腾内存可以弥补 RAM 不足吗?

英特尔傲腾内存可以弥补 RAM 不足吗?

我目前有一台大约两年前的笔记本电脑,内存为 8 GB。我用我的笔记本电脑浏览互联网、使用生产力应用程序和编程,包括使用 Spyder 或 RStudio 进行数据科学。我运行的是 Windows 10。

我的内存使用率通常约为 65%,或者大约 5 GB。

我最近购买了一台笔记本电脑,它有 4 GB 的标准 RAM 和 16 GB 的英特尔傲腾内存,但尚未收到。这款笔记本电脑的宣传是拥有 20 GB 的内存,但在阅读了有关傲腾内存的更多信息后,似乎它更像是一种低延迟缓存,而不是 RAM。

为了同时运行多个内存密集型程序(例如具有许多选项卡的浏览器、数据科学 IDE),平均使用 5 GB 的 RAM,将 RAM 从 8 GB 减少到 4 GB 但添加 16 GB 的 Optane 内存是否会导致性能下降?

如果有帮助的话,这是我的当前内存配置文件的快照:

内存配置文件

更新:如果您好奇的话,我可以毫无问题地取消订单。答案让我意识到新购买的笔记本电脑很可能比我现在的笔记本电脑慢。

答案1

英特尔 Optane“内存”这个名称并不恰当。它只是一张缓存卡,通过添加能够以 SSD 磁盘速度运行的 RAM 缓存,可以将普通硬盘变成混合磁盘。

Optane 内存不是随机存取计算机内存,即 RAM。相反,它旨在充当 RAM 和存储器之间的缓存内存桥梁,从而实现内存、存储器和处理器之间更快的数据传输。因此,它比旋转硬盘快几个数量级,并且可以以廉价 SSD 的速度运行。而且与 SSD 一样,它在关机时不会自行擦除。

结论:你确实犯了一个错误,被商业炒作所蒙骗。此外,在我们目前的硬件和软件条件下,4 GB 的 RAM 太低了。如果你还能取消这台笔记本电脑的订单,我建议你取消。

答案2

其他答案涵盖了情况的要点,但我想添加一些背景信息。

长期以来,RAM 在面向非专业人士的笔记本电脑中通常被称为“内存”。这通常很有用,并且直到最近才引起问题。开始这种做法的同一家公司现在将 Optane 缓存和 RAM 归为同一名称“内存”,目的是欺骗您认为笔记本电脑的 RAM 比实际的要多。Optane 技术仍然相对较新且未知,因此这种欺骗很容易上当。深入研究产品列表通常可以揭示真相。

Optane 缓存不会、也无意取代 RAM。它们都有助于加快计算机速度,但操作方式不同,适用情况也不同。当正常使用需要至少 5GB 的 RAM 时,Optane 无法缓解只有 4GB 的 RAM 带来的严重减速。

您已成为故意欺骗性营销的受害者。我建议您购买另一台笔记本电脑(具有 8GB 或更多 RAM)以满足您的使用情况。也许可以购买一台来自更坦率的制造商的笔记本电脑。

答案3

上下文(预算消费设备),Optane 显然只是指使用 3D XPoint 内存(而不是 NAND 闪存)的小型/快速 NVMe 连接 SSD,这使其具有非常高的写入耐久性。(因此如果用作交换空间,它不会磨损)。

对于许多工作负载来说,这仍然会很糟糕,因为与其他负载相比,它仍然需要页面错误和许多微秒才能访问。DRAM 访问(缓存未命中)大约需要 70 纳秒;它不是直接映射到 CPU 内存总线上的。此外,乱序执行/硬件预取/其他内存并行性可以保持每个物理核心约 10 次缓存未命中,但页面错误正在序列化。当操作系统正在处理页面错误时,(在此线程中)不会发生任何有用的工作,因此 OoO exec 没有机会隐藏任何硬页面错误延迟。(但即使 70 纳秒也太长了,无法完全隐藏。尽管如此,对于某些工作负载来说,在不同的线路上多次发生未命中可以大大减轻这种影响。)


使用极少量的 RAM 并依赖快速 SSD 来获取交换空间/页面文件并不是这种 Optane 的唯一用例。(甚至可能不是一个好的用例)。https://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.html描述,它的主要用例是作为磁性硬盘的透明缓存。我认为英特尔提供了 Windows 驱动程序来实现这一点。您可以购买具有旋转磁性存储的 SATA 硬盘,其中内置一些闪存作为磁盘频繁访问部分的缓冲区/缓存。Optane HW + 驱动程序可以为任何磁盘执行此操作。

Optane NVMe 在低队列深度下显然具有非常好的随机读取性能(等待一次读取完成后再开始另一次读取,不幸的是,当程序必须读取一个块才能确定下一步要做什么时,这种情况确实会发生,而软件预取并没有帮助)。因此,它应该可以很好地加快程序启动时间和启动速度。

对于大文件的大量连续写入来说,这并不是特别令人惊讶;希望驱动程序软件知道绕过 Optane 缓存并直接进入底层磁盘。英特尔的Optane 主页链接到https://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.html这表明他们的 16GB M.2 Optane 具有 900MB/s 的连续读取速度,但只有 145MB/s 的连续写入速度。32GB 版本速度更快,读取速度为 1350 MB/s,写入速度为 290 MB/s。但同样,这些并不是 Optane 最擅长的。它的连续和随机读取 IOPS 均为 240k IOPS,读取延迟为 7 µs。


英特尔有一个叫做 IMDT 的东西(英特尔内存驱动技术)这是一种虚拟机管理程序,它为操作系统创建了更大的主内存地址空间的假象。一些页面将映射到实际的 DRAM 主内存,而其他页面将映射到 SSD 内存。当访问映射到 SSD 的页面时,IMDT 会捕获页面错误,这将导致页面从 SSD 移至主内存(可能会将页面从内存移至 SSD)。IMDT 将尝试将页面预取到 DRAM 中,以缓解 SSD 的低带宽和延迟。它还将尝试将最热的页面保留在主内存中,以便以最小的代价访问它们(唯一的代价可能来自虚拟化带来的额外分页层)。操作系统几乎不会注意到这种映射并正常工作。这种内存系统称为软件定义内存 (SDM)。题为“英特尔内存驱动技术在科学应用中的性能评估”的文章对 IMDT 进行了性能评估,并将其与具有相同数量 DRAM 主内存的系统进行了比较。我还没有仔细阅读这篇论文,但看起来 IMDT 可以在 NUMA 节点之间迁移页面,使它们更接近最需要它们的节点。

也就是说,IMDT 仅支持服务器级英特尔处理器。它旨在打造经济高效、节能的服务器,对性能的影响可能很小。

http://www.lmdb.tech/bench/optanessd/imdt.html使用 Optane DC P4800X SSD 进行了一些基准测试。(高端数据中心版本,不是消费级产品。持续写入能力更高。)

我还没有研究过这个问题,所以我不确定这是否与 Windows 如何利用消费者 Optane SSD 有关。


Optane 品牌名称(有点令人困惑)也用于一件更有趣的奇特事物:

3D XPoint 非易失性 DIMM,又名“Optane DC 持久内存”。 https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-hereApache Pass 是第一代 Optane DC PM 的名称。请参阅以获取有关后代的信息。

英特尔有自己的营销页面这里,其中包含一些技术细节链接。显然,“DC”代表以数据为中心。

这是插入 DDR4 DIMM 插槽的非易失性存储器,并且显示为实际的物理内存。 显然,它只有下一代 Xeons(而不是当前的 Skylake-X 又名 Skylake 可扩展处理器系列)才完全支持。

还有其他类型的 NVDIMM,例如电池供电的常规 DRAM(可选择使用闪存来转储数据以便长期断电,因此它们只需要超级电容器而不是化学电池)。 https://en.wikipedia.org/wiki/NVDIMM有一些细节。

https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hot有一些关于 NVDIMM 的更一般信息(以及 JEDEC 的标准化,以及 OS + 应用程序如何协作,让应用程序直接与内存映射的 NV 存储区域对话,确保提交顺序等等)。主要观点是它们实际上模糊了 RAM 和存储之间的界限(从计算机架构的角度来看,而不是从严格营销的角度来看,就像你看到的声称 4+16GB 的欺骗性笔记本电脑广告一样)。


操作系统可以让进程将非易失性物理内存映射到自己的虚拟地址空间中,以便访问存储直接地使用用户空间加载和存储到内存地址,无需任何系统调用,让 CPU 硬件在有未完成的读/写操作时继续无序执行(有一些软件库可以让开发人员利用这一点,包括能够flush()确保数据确实写入持久存储的能力。

这种映射甚至可以是写回缓存的,因此数据的使用完全受益于 L3/L2/L1d 缓存,直到需要将其写回(如果已修改)。对于主要读取的数据,这种类型的 Optane 确实可以被称为 4+16GB RAM。(当然,目前数据中心使用 Optane NVDIMM 的情况是使用很多更大的 DIMM,例如 512GB。

(它不像mmap普通磁盘上的 ed 文件,您只需为文件映射操作系统的页面缓存,操作系统会负责在后台执行 I/O 以将脏 RAM 页面与存储设备同步。)

确保某些数据在其他数据之前实际到达 NV 存储(以便像文件系统或数据库日志一样进行崩溃恢复)至关重要。对于系统调用,这是您使用 POSIXfsync或 的地方fdatasync。但由于应用程序具有真正内存映射的存储,因此这就是库函数调用发挥作用的地方。

在 x86 asm 中,我们使用正常的加载/存储来访问存储,但我们关心的是数据何时真正写回到 NVDIMM(这样就不会断电),而不是数据何时对其他核心或缓存一致性 DMA 可见(一旦从存储缓冲区提交到 L1d 缓存),因此 x86 的正常内存排序规则并不能完全处理所有事情。我们需要特殊指令来从 CPU 的缓存中刷新选定的缓存行。(供 NV 存储库使用。)

asm指令clflush已经存在了一段时间,但 NV 存储是英特尔添加的主要原因clflushopt在 Skylake(尽管它也有其他用例),并且正在添加clwbIce Lake(无需驱逐的回写)。

Dan Luu 写了一篇有趣的文章前不久,我们谈到了将操作系统排除在存储访问之外的好处,并详细介绍了英特尔当时对clflush/clwb及其内存排序语义的计划。当时英特尔仍计划要求将一项名为pcommit(persistent commit) 的指令作为此过程的一部分,但英特尔后来决定删除该指令:弃用 PCOMMIT 指令有一些关于原因和内部工作原理的有趣信息。

(这已经偏离了主题,涉及到 x86 NV 存储的低级细节。我应该找个地方发布这部分的大部分内容,但我认为)


还有Optane DC SSD,作为 PCIe x4 卡或 2.5 英寸。750GB 版本的顺序读取速度高达 2500 MB/s,顺序写入速度高达 2200 MB/s,随机读取或写入速度高达 550000 IOPS。读取延迟略低于 M.2 NVMe,为 10 µs。

如果您要使用数据库服务器或其他东西(如果您不能使用 NVDIMM),这就是您想要的,但它不会让您的 4GB 笔记本电脑比随其一起出售的 16GB Optane 快得多(对于大多数典型用例而言)。交换空间抖动通常会产生大量相关读取,因为必须先将页面调入并访问,然后页面错误的代码才能继续执行下一步要执行的操作。如果内存真的很紧张,操作系统就没有多余的页面可以积极预取,因此您会期望队列深度较低,而消费者 Optane 正是为此而优化的。(低延迟。)


Intel Optane SSD 提供了良好的性能-功耗-成本平衡。SSD 在未访问时基本上不消耗电量。相比之下,DRAM 芯片的静态功耗(主要是由于刷新)非常大。因此,系统中的 DRAM 数量理想情况下应与典型工作负载的工作集相匹配。您购买的系统是为需要大约 4GB 或更少主内存的典型工作负载而设计的。在这种情况下,如果系统有 8GB 主内存,它将不必要地消耗更多电量,从而缩短电池寿命。但是,Optane SSD 允许您偶尔运行需要稍微多一点主内存的工作负载,而性能下降最小(与基于 NAND 的 SSD 或 HDD 相比)。

目前,DRAM 内存每 1GB 的成本约为 4.5 美元,而英特尔 Optane SSD 每 1GB 的成本约为 2 美元。因此,16GB Optane SSD 比 4GB DRAM 模块更贵,但比 8GB DRAM 模块便宜。因此,如果您取出 Optane SSD 并添加 4GB 内存,您将获得一个更便宜的系统,而且对于工作集大于 4GB 的典型工作负载,该系统的平均速度也更快。但硬页面错误处理、页面预取和页面交换在 HDD 上会更慢。这就是为什么如果典型工作负载需要少于(或大约)4GB 的内存,8GB 系统可能会比 4GB DRAM + 16GB Optane SSD 系统慢的原因。

如果您只是要使用笔记本电脑浏览互联网或编辑文本,那么它就是您的不二之选。Optane SSD 有助于缩短启动时间,快速访问最常访问的文件,并可用作额外的辅助存储。因此,尽管您为 16GB Optane SSD 支付的费用比 4GB DRAM 多,但您还是获得了一些独特的好处。但您提到的其他一些应用程序,例如 RStudio,要求至少 4GB 内存。如果您通常同时使用浏览器和 RStudio(可能还有其他应用程序),那么您应该购买具有至少 8GB 内存的系统。不过,Optane SSD 还是不错的。

答案4

其他人已经很好地涵盖了这方面的许多方面,我想您已经知道英特尔傲腾绝对无法与 RAM 相比。

在冯·诺依曼架构中,“RAM”是指计算机中的主存储器,处理器可直接访问。英特尔傲腾驱动器属于“二级存储器”类别,因为它更像是磁盘而不是 RAM。

严格来说,在现代计算机中,RAM 是唯一的主存储,因为它是唯一直接连接到处理器的东西。我们将英特尔傲腾磁盘归类为英特尔傲腾磁盘,因为它不是直接连接到处理器,而是连接到 I/O 总线(或磁盘控制器)。这严重限制了傲腾驱动器的潜力,最终使其无法与 RAM 相提并论。

如果您有 Optane 磁盘,最好将其捡起来卖掉,然后购买通常速度更快的真正的 NVMe SSD。我在 HP EX920 上运行,其所有 I/O 规格(顺序/4K)都高于 Optane 驱动器。

相关内容