这更多的是我感兴趣的通用问题,而不是我打算在生产中使用的东西。 如果我得到了,说一个40GB的SSD驱动器,并将整个驱动器分配到交换空间,只留下less量的“真正的”内存(例如,我会说512MB物理内存),性能如何比较40GB的真正的内存?
可能无法进行一般的比较,例如运行一个运行RedHat,MySQL,MongoDB和Memcached的数据库服务器(根据我的经验,数据库服务器像很多ram,特别是使用Memcached),并省去了大惊小怪可以说所有的服务已经被优化configuration和调整,而不仅仅是股票安装。
TL; DR
SSD驱动器可以用来替代内存吗?
交换空间不是RAM的简单扩展,因此CPU可以直接访问它,所以在较低的速度之上(比较http://en.wikipedia.org/wiki/List_of_device_bandwidths上的DDR3和SATA总线的最大吞吐量)和更高的延迟(即使访问是直接的,任何传输都将通过I / O控制器和驱动器的控制器,所以有两个很大的延迟,这两个延迟可能比CPU和RAM),还有额外的处理和等待时间考虑,因为SSD上的存储器块在使用之前需要被分页到RAM中,并且如果它们被修改则再次被写回。
这对于随机访问尤其重要(并且大多数内存中algorithm是在假设随机访问是有效的情况下编写的)。 虽然CPU可以随时访问RAM中的任何字,但是如果它想要的数据被分页出去,它将需要重新读取整个页面,然后才能读取一个字节,如果在从RAM中清除页面之前单个字节被修改以便再次为另一个字节腾出空间,那么整个页面需要被写入。
当然,我在这里忽略了高速cachingRAM的复杂性,这意味着随机访问有时比其他时间效率更高(取决于数据是否仅存在于主存储器中,或者在此时被复制到L3 / L2 / L1高速caching中)。 从理论上说,你的RAM只是caching你的永久存储器,而且有这样一种体系结构,它的工作原理就是在较慢的永久存储和较快的caching之间没有区别(至less就操作系统而言 – 只是看到主存储器,如果数据也在更快的caching中),但是您的硬件和操作系统的体系结构不是这样devise的。
SSD驱动器可以用来替代内存吗?
您可以通过比较RAM访问时间(10纳秒量级)和吞吐量(10 GB /秒量级)与SSD访问时间(1毫秒量级)和吞吐量(100 MB /秒量级)来自己回答这个问题。
如果您的应用程序的“内存”比通常慢100到10万倍,那么是的,SSD可以用作内存的替代品。
Can SSD drives be used as a replacement for ram?
是的,特别是如果你喜欢经常更换硬件,那么你会经常这么做 – 如果你每天写超过35GB的SSD,大多数SSD都会很快死掉。