RAM很便宜,并且比SSD快得多。它只是易变的。那么,为什么计算机没有大量的RAM,并在开机时从硬盘驱动器/ SSD将所有内容加载到RAM并仅从那里运行所有内容,前提是没有真正需要在内存之外保留任何内容?电脑会不会快得多?
当然,当前的操作系统可能根本不支持此功能,但是是否有任何原因不使用RAM?
RAM很便宜,并且比SSD快得多。它只是易变的。那么,为什么计算机没有大量的RAM,并在开机时从硬盘驱动器/ SSD将所有内容加载到RAM并仅从那里运行所有内容,前提是没有真正需要在内存之外保留任何内容?电脑会不会快得多?
当然,当前的操作系统可能根本不支持此功能,但是是否有任何原因不使用RAM?
Answers:
不使用RAM的原因有几个:
话虽如此:是的,RAM磁盘确实存在。甚至用作具有DIMM插槽的PCI板,以及用作具有很高IOps的设备。(通常在公司数据库中使用,然后成为SSD的选择)。这些东西并不便宜。
以下是两个将其投入生产的低端RAM磁盘卡的示例:
请注意,除了在公共工作存储器中创建RAM磁盘外,还有更多的方法可以做到这一点。
您可以:
我敢肯定,从Amiga RAD,还有更多方法可以描述:将尚存的RAM磁盘重置为IOPS,损耗平衡并且Gd知道什么。但是,我将简短介绍一下,仅列出另外一项:
DDR3(当前DRAM)价格与SSD价格:
操作系统已经使用页面缓存执行此操作:
在计算中,页面缓存(通常称为磁盘缓存)是操作系统在主内存(RAM)中保留的磁盘支持页面的“透明”缓存,以加快访问速度。页高速缓存通常在具有页内存管理的内核中实现,并且对应用程序完全透明。
从磁盘读取页面时,操作系统会将数据加载到内存中,并保留在那里,直到可以更好地使用该内存为止。如果您有足够的内存,则操作系统将只读取一次每个页面,然后从内存开始使用它。操作系统执行真实磁盘IO的唯一原因是:它需要读取尚未在内存中的页面,或者写入页面(在这种情况下,您可能希望将其保存到磁盘)。
这种方式的优点之一是您不必将整个硬盘驱动器都加载到内存中,这在不适合的情况下很有用,并且还意味着您不会浪费时间阅读应用程序不需要的文件需要。另一个优点是,只要操作系统需要更多内存,就可以丢弃缓存(最好使下一个磁盘的读取速度稍慢一些,而不是使程序由于内存不足而崩溃)。同样,用户不需要手动决定虚拟磁盘中应该包含的内容也很有用:无论您最常使用什么,都会自动保存在主内存中。
如果您有很多内存,但是您的应用程序运行不如您预期的那样快,则很有可能它们运行缓慢,因为它们运行安全。例如,如果您告诉SQLite不要等待写入完成,则SQLite的速度要快几个数量级,但是如果您不干净地关机,则数据库将完全损坏。
而且,/tmp
通常是Linux发行版上的虚拟磁盘,因为如果数据丢失了就可以。关于这是否是一个好主意,仍存在一些争论,因为如果写入太多数据/tmp
,则可能会耗尽内存。
正如Alan Shutko在对问题的评论中指出的那样,RAM实际上并不便宜。
这里是一些数据点。当我在Google上搜索4 GB RAM,64 GB SSD和1 TB HDD(机械硬盘)时,这是我看到的费用(这是2013年8月25日的费用):
4 GB RAM = $ 32-$ 36 => RAM =每GB $ 8
64 GB SSD = $ 69-$ 76 => SSD =〜每GB $ 1
1 TB硬盘= $ 80 => 硬盘= $ 0.08每GB
哇!HDD比RAM便宜100倍!而且SSD比RAM便宜8倍。
(此外,如其他答案所指出的,RAM本质上是易失的,因此您需要某种其他形式的持久性存储。)
我会立即执行所有读/写操作,以便在本地计算机上的RAM磁盘中生成内容。我还在那里存储了MongoDB日记文件夹,以及我的编译器,Python解释器和标准库。该磁盘在关闭时保存,并在启动时恢复。我使用的第二个RAM磁盘是64 MB,所有我的Internet浏览器的缓存文件夹都指向该磁盘。会在关闭时丢失,并在充满时自动刷新。
使用正确的工具来完成我认为的工作,这将是我给您的答案。使用RAM磁盘生成数据的速度比7200rpm Western Digital快30-1000倍。
这是我正在使用的程序:http : //www.romexsoftware.com/zh-cn/primo-ramdisk/
...并且当32gig的Ram低于200美元时,我不明白为什么这种情况没有变得越来越普遍。
简短说明:
第一次执行应用程序时,会将其从硬盘或网络传输到RAM。因此,不用担心,您已经做到了。
但是,通常,不仅只有一个应用程序/进程文件,而且还有一些针对硬盘或网络的I / O操作(应用程序的其他文件或与系统相关的其他I / O操作等),这可能会降低您的速度应用。这些可以定向到RAM磁盘,但是您应该考虑到RAM磁盘在断电时会删除,并且应该在启动时再次填充。
RAM不像问题中那样便宜。当掉电时,您不仅应该计算RAM的成本,还应该计算工作RAM的成本,包括主板上的插槽(这些插槽有限/稀有,因此更有价值)和丢失数据的成本。
例如,可以廉价购买具有1TB HDD的计算机,这与家用计算机有关,具有1TB RAM的计算机属于超级计算机范围。(但英特尔正在研究中端产品:http : //vr-zone.com/articles/more-on-xeon-e5-terabyte-of-ram-even-at-midrange-/14366.html)
这是一个伟大的问题,我的回答令人着迷。我将以Oracle DBA的身份对此进行评论,而我的答案是Oracle数据库的特定说明。这是很多人在使用Oracle时犯的一个主要错误。我不确定这是否也适用于其他应用程序。这并不意味着偏离主题,而是作为专门的答案。
当您使用Oracle调整性能时,您实际上是在寻找消除瓶颈的方法。尽管我们大多数人都没有说过,但这是基于约束理论的:https : //en.wikipedia.org/wiki/Theory_of_constraints
内存可能不是您的瓶颈。Oracle具有复杂的内存管理机制,如果瓶颈是其他地方,增加内存实际上会减慢速度。让我举一个非常普遍的例子。
查询似乎很慢。共识是,如果增加RAM,则由于内存比磁盘快,因此应该增加查询的响应时间。好吧...这就是Oracle处理数据的内存管理的方式。Oracle具有分配给特定职责的各种内存位置。因此,您可以增加这些记忆。用于数据的区域称为“缓冲区缓存”。这是一系列的链表(每个版本中链表的数量往往会增加)。在查询过程中,每次在磁盘上找到一个块时,都会在其上运行哈希算法以确定将其粘贴到哪个列表中。将其放在列表中的位置基于触摸计数算法(在Oracle支持网站上有解释,因此您必须付费才能获得它……这并不重要)。
但是,当您运行查询时,Oracle会删除您当时搜索的缓冲区链上的闩锁。此闩锁(注意:这不是锁。如果您不知道区别,Google会“闩锁”)会在读取期间阻止该链上的所有其他操作。因此,它阻止读写操作(这与Oracle声称锁不阻止读取操作完全不同)。
这是必要的,因为当您阅读链中的块时,Oracle会根据“请求”的频率来移动它。请求频率较高的块移至顶部,请求频率较低的块留在底部并老化。您不能有2个会话读取链接列表并四处移动块,否则您将碰到指向不存在位置的指针。
当您增加内存的大小时,您将增加每个链接列表的大小。这会增加读取列表所需的时间。一个糟糕的查询或复杂的查询可以读取成千上万甚至上百万个链接列表。每次读取都很快速,但是它们的数量会导致锁存器被占用,这会阻塞其他会话。Oracle将其称为“逻辑IO”(或缓冲区获取或其他内容。这种术语是Oracle特有的,可能在IT的其他部分有其他含义)。
因此,如果列表较长并且您的SQL确实很差,则SQL语句将保留其闩锁的时间更长。增加内存有时会降低性能。大多数情况下,这不会发生。人们会花很多钱,却看不到任何好处。话虽这么说,有时您在缓冲区高速缓存中需要更多的内存,但是您必须正确识别瓶颈才能知道这是否合适。我无法在这篇文章中讨论如何对此进行分析。请参阅DBA论坛。有人在那里讨论。这相当复杂。
有人在其他软件方面有具体的例子吗?有本很棒的商业书叫做“目标”,讨论了减轻工厂中的约束。此过程与Oracle DBA在评估性能问题时非常相似。在MBA课程中,这通常是标准阅读。对于IT专业人士来说,阅读非常有价值。
RAM可能很便宜,但不如传统存储便宜。
我有一个3TB硬盘($ 99):HDD报价
您将需要48个3TB 内存,每个($ 719):RAM Quote
这将是$ 34,512与$ 99。更不用说运行3TB RAM所需的硬件价格。
实际上是在某些情况下完成的。如果您的操作系统/应用程序堆栈足够小,则可以完全在RAM中运行它。当然,它具有公认的答案的所有缺点。但是这是可能的,而且确实会发生。
查看流行的Linux发行版Puppy Linux。他们的工作方式页面讨论了如何从RAM运行:http : //puppylinux.org/wikka/howPuppyWorks
我认为答案可以部分回答如下:
前提:
鉴于有限的内存插槽数量,一种重要的解决方案是采用具有较小内部尺寸的较高内存芯片和/或3D堆栈形式。在过去的36个月中,这两个过程均按预期进行。
因此,问题是:“ DDR3最大内存大小 ”或语义上:“ DDR3为什么没有大于16GB的内存模块 ”
答案是:
DDR3标准允许512兆位至8吉比特的芯片容量,有效地使最大内存模块大小达到16吉比特 (src)
DDR4将改变这种状况,如以下技术图所示:
结果:
对Hennes的完整文章的一些警告:
pkr298
假定整个操作系统和程序都已加载到RAM中,而不是应该废除硬盘驱动器/ SSD您实际上是正确的在不久的将来,所有存储和内存都将以nano ram的形式出现。NRAM基本上是几原子宽的“机械”开关,它不需要电流来维持状态,因此它具有能源效率,并且不需要冷却,并且因为开关很小,所以密度非常高,这样做有两个原因,一个是对内存的访问速度非常快,并且您将能够在诸如手机之类的小型设备上拥有TB级的数据。如果您想了解更多信息,请参见:http : //www.nantero.com/mission.html和http://en.wikipedia.org/wiki/Nano-RAM
正如其他人所说,RAM是易失性的,大约是SSD成本的10倍。
然而,IS产品在那里,出来的结果很接近你描述-不幸的是我不记得名字。
它是基于RAM的驱动器(IIRC max 64gb),配有CF卡和电池。当您打开系统电源时,它将CF卡的内容复制到RAM(如果尚未加载,则相信来自CF卡的服务请求。)在关闭时,RAM的内容被复制到CF卡- -电池足够大,可以在耗尽之前完成充电。
不便宜