SSD袭击能否比ramdisk更快?


9

因此,典型的ssd的读取速度为250-500 mb /秒。一只公羊的重量大约是它的10倍。

我的问题是:出于某种原因,具有raid-0的4个ssd可以比单个ram内存块快吗?

我要么要使用大量的ram和ramdisk,要么要使用raid-0的4个ssds。哪个更快?

Answers:


12

因此,典型的ssd的读取速度为250-500 mb /秒。一只公羊的重量大约是它的10倍。

您指的是哪种RAM?看起来,这肯定不是最近在PC中普遍使用的东西。

DDR3 SDRAM可以为您提供大约10 GB / s的传输速率(您需要DDR3-1333),目前DDR3-2133的最高传输速率约为17 GB / s。

假设您对四个能够提供500 MB / s速度的SSD进行了条带化​​,并且整个系统都能够处理该SSD(无总线争用,系统仍然受I / O限制,等等)。这给你一个理论上的最大吞吐量2 GB /秒。4xSSD的损失将近十倍

DDR3 SDRAM的延迟时间为10 ns。好的SSD可能会给您100k IOPS(最高),这意味着10,000 ns的延迟。(例如,Intel 530为随机4k读取指定了41k IOPS,这使您的延迟接近25,000 ns。)

条带化四个快速固态硬盘并忽略所有开销,您可能会获得400k IOPS或2500 ns的延迟。4xSSD损失 250倍。

来自SSD的数据必须到达某个地方,而该“某个地方”将是RAM。CPU可以从那里抓取它,但是它不直接与SSD对话,而是直接与旋转硬盘驱动器对话。

如果我们假设您在SSD上没有总线争用,那么为RAM假设相同的情况就很有意义。由此得出的结论是,无论采用哪种标准,与DDR3 SDRAM相比SSD的速度都非常慢。

RAM还有其他缺点。即使与SSD相比,其每GB的价格也非常昂贵,并且需要恒定的功率来保留其内容。同样,RAM磁盘的功能与RAM不太相同,因为它是操作系统中的软件结构。您仍然应该获得RAM的大部分性能优势,但是您损失了相同数量的RAM,这可能导致系统需要更频繁地进行交换(这是性能的死刑),并且可能不会提供与原始RAM完全相同的性能。


RAMDISK是的话..
科瑞图加伊

1
@KorayTugay如果您需要绝对最高的性能,则应该使用RAM磁盘,但请记住,RAM磁盘的功能与RAM并不完全相同,并且有其自身的一系列缺点,其中最重要的一点就是价格。(此外,尽管我很高兴接受我的建议,但我建议您在等待答案之前等待一天左右,以防其他人提供更好的答案。)
CVn 2013年

@KorayTugay:一般来说,“我需要RAMDisk吗?”的答案 几乎总是“不。如果您真的需要它,那么您将了解得足够多,而不必问。” 您正在做什么,使您认为自己需要它?
afrazier 2013年

@afrazier使用大型数据库进行开发/测试,我为此进行了多次访问,并从中获取了很多数据。我将数据库保留在内存中。我一天要做8 10个小时,而等待4 5秒似乎过了一段时间。我需要更快地进入数据库。
Koray Tugay 2013年

5
任何称职的DBMS都将尽可能多的DB保留在RAM中。如果您的数据库足够小以适合放入RAM磁盘,那么它也足够小以仅适合放入RAM。适当地使用SSD调整DBMS将为您提供所需的性能-对于本地开发,您甚至可以利用回写缓存和减少对ACID的担心等优势。RAMdisk正在与系统对抗。
afrazier 2013年

4

回答“否”的真正原因不仅在于两者之间的差异比较,还因为操作系统最终将缓存从SSD读取的数据。它将缓存在您的RAM中。因此,从SSD读取块也意味着将块写入RAM。总是。

这就是为什么即使在非常特殊的硬件组合中,RAM磁盘也更快的原因(例如,非常快的SSD与非常慢的RAM结合在一起)。


1
这实际上是最好的答案。
ChrisInEdmonton 2014年

sudo zfs set primarycache=none tank您的基于RAM的缓存就在那里。(当然,假设您使用的是ZFS。)
CVn 2014年

@MichaelKjörling是的,即使在非zfs构造中,也可以关闭读取缓存。但是即使在这种情况下,如果您进行$ read()$调用,它实际上也将是从SSD到RAM 的副本。您无法避免这种情况,除非您将数据以某种方式直接读取到CPU缓存中(这也意味着您避免以某种方式避免DMA),AMD cpus(也许是intel)具有集成的内存管理器,我认为它们的版本略有修改可以以某种方式做到这一点。但是即使在这种情况下,也需要修改CPU。
peterh-恢复莫妮卡

3

要回答您的实际问题:否。RAM的带宽增加了一个数量级,而延迟则减少了一个数量级。还差得远

要回答您没有问的问题:除非您有一个非常特殊的用例需要那种带宽,否则您打算做的是个坏主意。如果您确实需要这种速度,那么购买基于PCIe的SSD(例如ioDrive或Intel 910)将比RAID-0中的SATA SSD包快得多。

当前任何SSD都将足够快地满足消费者和发烧友的工作负载,而这将成为瓶颈。


实际上,DDR3延迟并不比SSD的延迟低一个数量级。它降低了三到四个数量级。看到我的答案一些实际数字。(但是,带宽差异肯定在球场上。)
CVn 2013年

延迟并不重要,因为IO发生在块中。至少在4K块中。带宽很重要。
peterh-恢复莫妮卡2014年

@PeterHorvath:延迟对于SSD来说仍然很大。查看有关一致性和早期SSD遇到的棘手问题的所有研究和基准。正如MichaelKjörling所提到的,RAM延迟比SSD低几个数量级。Lx缓存上的延迟仍然大大降低,CPU寄存器延迟甚至更低。这对性能至关重要。
afrazier 2014年

1

RAM将始终比外围总线系统(如SATA)可以提供的速度更快。

但是,当您处理RAM磁盘时,您并不仅仅在处理RAM。还有很多软件(文件系统和设备驱动程序)可以考虑将原始RAM“转换”为操作系统将其视为磁盘存储的内容。

RAM磁盘的真正速度将完全取决于该软件的质量。

话虽如此:通常,它应该是可以连接到主板上最快的存储解决方案的几倍。

在某些特殊情况下,特定的使用模式会使差异变小或几乎为零,但是如果没有更多详细信息说明如何使用这种系统,就无法确定这是否适用于您的情况。

PS请记住,RAM磁盘将易失。启动计算机后,您将必须首先将其加载数据。在关闭计算机时,您将必须保存内容(如果下次运行需要它)。如果系统崩溃,您将丢失RAM磁盘以保存任何内容。
这是您必须考虑的事项,尤其是在您希望频繁重启的情况下。保存/重新加载RAM磁盘内容可能不那么简单。


我将数据库保存在ram中。
Koray Tugay 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.