为什么不使用 SSD 空间作为 RAM?

Jen*_*nny 68 memory ssd

我是硬件方面的新手。我运行了几台具有 400GB+ SSD 和 32GB RAM 的机器。我一直在考虑增加 64GB RAM,但是,我在想,既然 SSD 是固态的,就像 RAM 一样,我的额​​外空间不能用作 RAM 吗?

如果我这样做,额外的 RAM(来自磁盘空间)是否会比 DDR3 RAM 效率低得多?

Jou*_*eek 53

首先,RAM仍显著比你都经常6Gb / s的SATA或甚至较新的PCI-E的解决方案快。RAM 也被设计为反复写入和擦除,代价是波动。RAM 通常不会因为经常使用而磨损 - 当然,它可能会像任何组件一样出现故障。

虽然 SSD 的使用寿命已经大大提高,但 SSD 确实会磨损。它们非常适合非易失性使用,但是如果您像编写 RAM 一样编写和覆盖 NAND(SSD 包含的内容),它就会磨损。

两者都针对不同的事情进行了真正的优化,并且您最好拥有足够的 RAM(并使用 SSD 或旋转硬盘驱动器进行分页),而不是为任务牺牲足够的 RAM。


And*_*rew 48

问题提出两年后,答案从“否”变为“可能”。

三星 SM951 是目前最先进的,在 RAID 0 中,已在测试中显示可实现 4.5GB/s 读取和 3GB/s 写入。以每个磁盘 1 美元/GB 的成本计算,这比 RAM 便宜得多。

http://www.legitreviews.com/samsung-sm951-m2-pcie-ssds-raid0-performance_161753/5

DDR4 data transfer rate:
DDR4 2133?17 GB/s
DDR4 2400?19.2 GB/s
DDR4 2666?21.3 GB/s
DDR4 3200?25.6 GB/s
Run Code Online (Sandbox Code Playgroud)

http://www.transcend-info.com/Support/FAQ-292

此外,SSD 的短寿命被大大夸大了,测试表明 250GB 的三星 840 Pro 可维持 2.4PB 的写入。

http://techreport.com/review/27909/the-ssd-endurance-experiment-theyre-all-dead/4

取决于应用程序。如果速度比空间更重要,那么 RAM,否则(也许)看看 SSD。

  • 引用的 PCIe M.2 性能是顺序传输速度,而不是随机读/写。因此,我们可能不会在这里进行同类比较。 (2认同)

use*_*555 40

正如 grawity 所建议的那样,您已经拥有执行此任务的交换/页面文件。现在,即使是 SSD 也比 DDR3 慢得多。SSD 最高可提供约654MB/s 的速度,而双通道模式下的1333MHz DDR3 可提供最高21.3GB/s (21 332MB/s) 的速度。

  • @skan 对于错误编码的应用程序无能为力。AFAIK 系统内存的分页对于应用程序来说应该是透明的。损坏的应用程序我只是认为,如果没有更多的 RAM 剩余,那么是时候关闭业务了。 (2认同)

小智 27

是的,它的效率会明显低于 DDR3 RAM。

  1. 如果用作 RAM(频繁写入),SSD 会很快磨损。所以它只会有效2个月左右,之后它肯定会死。(所以,而不是 10 年的生命......它将存活大约 10 周。)
  2. SSD 是一种磁盘设备。CPU只能将数据从 RAM预加载到其缓存中。如果它将在 SSD 上,则必须首先将其加载到 RAM 中……访问磁盘(即使是非常快的 SSD)比访问 RAM 慢大约 100 倍。查看 HDD、SSD 和 RAMDISK 的基准测试(DDR3 上的 ramdisk 超过 3000 MB / 秒,访问等待时间不到 0.1 毫秒。所以,很明显:SSD 无法与 RAM 的速度竞争)。


psu*_*usi 22

不能将 SSD 用作 ram 的关键原因是因为它连接到计算机就像是一个磁盘驱动器,而不是 ram。也就是说,处理器不能直接寻址 SSD 中的内存,而是必须将一块 ram 交给 SATA 控制器,并要求它在该 ram 和驱动器中的某个区域之间传输数据。

新的 NVM Express 接口有望改变这一点。它允许 CPU 将 SSD 的条带直接映射到其内存空间并像 RAM 一样使用它,而不是发出 IO 请求在 RAM 和 SSD 之间进行传输。这有可能显着加快对 SSD 的访问速度,同时使用更少的 RAM,因为在 CPU 访问数据时不再需要缓存数据。这是当前 linux 内核中一个积极开发的领域。

  • 第一段基本上是对直接问题的正确答案。其他人提到的驱动器的速度和磨损是次要问题 - 即使 SSD 与 RAM 一样快速和有弹性,目前我们仍然无法将其用作 RAM。 (4认同)

phu*_*clv 5

首先,我必须说交换/页面文件不是 RAM 或虚拟 RAM。这是很多人都有的一个很大的误解。页面文件只是存储“未使用”内存页的地方。如果程序触及内存中不可用的页面,那么内存控制器将抛出异常,操作系统将从任何类型的内存(如硬盘、SSD、网络或zramzcache ...)捕获并加载该页面。或者直接杀死进程。这绝不意味着页面文件是 RAM

\n

现在回到主要问题

\n
\n

确实在同一时代SSD总是比RAM慢,但是......

\n

原因不是速度!!!

\n

即使 SSD 比 RAM 更快,我们仍然不能将其用作 RAM,因为现在您可以购买的 SSD 不具备像 RAM 那样寻址单个字节的能力。它们是块设备,这意味着您只能在上工作。在底层,它们由NAND 闪存模块组成,只能读/写单如果不读取和重写整个页面,就无法编辑单个字节。每个页面远大于CPU的缓存线

\n

这意味着与 psusi在第二段中所说的不同,NVMe 或 M.2 SSD 不能用作 RAM,即使您可以将其映射到 CPU 的地址空间!

\n

有一些类型的非易失性存储器可字节寻址的,例如NOR 闪存。这就是为什么嵌入式设备的小型微控制器偶尔使用 NOR 闪存作为就地执行 (XIP)介质,以避免需要单独的 RAM 和 EEPROM/闪存芯片。但由于速度和成本的原因,这对于大型计算机不起作用,就像一些小型 MCU 直接使用 SRAM 作为 RAM,而不是像普通 CPU 那样使用 DRAM

\n

此外,为了能够作为 RAM 工作,您不仅需要读/写单个字节的能力,还需要内存控制器/ MMU的支持。如果内存控制器不知道如何与设备交互,则映射地址空间不起作用。目前内存控制器都直接处理 RAM 模块,因此无论内存类型如何,您都需要对任何要用作 RAM 的东西使用相同的 RAM 接口

\n

这就是Intel\xc2\xae Optane\xe2\x84\xa2 AKA 3D XPoint目前正在做的事情。它目前最接近“使用 SSD 作为 RAM”,因为它是唯一足够快且可字节寻址的东西请注意,仅Intel\xc2\xae Optane\xe2\x84\xa2 持久内存采用 DDR4 外形尺寸并可用作 RAM。不过,您仍然需要一些特殊的硬件和操作系统支持,否则他们仍然假设 RAM 中的数据始终是易失性的

\n

Optane 内存与 DDR4 的比较

\n

其他外形尺寸,Intel\xc2\xae Optane\xe2\x84\xa2 SSD,由于我所说的原因而不能用作 RAM

\n
\n

Intel\xc2\xae Optane\xe2\x84\xa2 内存采用 M.2 外形尺寸,不会在 DIMM/DRAM 内存插槽中使用。因此,它不会取代您当前拥有的 RAM。

\n

Intel\xc2\xae Optane\xe2\x84\xa2内存可以用作RAM吗?

\n
\n

不过,正如预期的那样,价格并不便宜:Intel Optane DIMM 定价:128GB 695 美元、256GB 2595 美元、512GB 7816 美元(2019 年 4 月 7 日)

\n

也可以看看

\n\n