SSD作为Linux交换大型虚拟内存应用程序?

这个问题在这个问题上有所涉及,但在64位Linux上运行,我有一套数据cachingJVM以及想要一个大的网页caching。 今天的每个高速caching被configuration为总体适合的系统内存(24GB),并坚持LRU磁盘。

我很好奇,但是性能,如果我们**分配caching进程,并build立一个高优先级的Linux交换的SSD。 我想知道Linux内核是否比我们简单的LRU过程更智能/更快?

我关心的是过度分配JVM堆,并且通过内核交换堆页面,因此GC必须定期遍历所述页面。

我build议固态硬盘不适用于交换分区,因为随着时间的推移,其性能会随着大量写入而降低。 这与SSD具有有限的写入时间这一事实有关,因此所有types的技巧都被用于最小化单个扇区被重写的次数。

我的猜测是你的performance不会随着你的成本和努力而扩大。 我的直觉告诉我,如果你能够以一种合理的方式划分你的数据caching,那么你可能会更加满意。

SSD在检索数据方面具有接近零延迟(相对)的好处,但连接主存储器或networking的各种总线将显着减慢速度。

恐怕我会不同意其他答复。 是的,一个固态硬盘只会采取类似100K的写入。 对于一个100GB的硬盘,这意味着写入10 ^ 16个字节,或者3000年来稳定的100MB / s。 即使负载平衡是如此糟糕,以至于你只能获得1%的好处。 此外,性能下降与丢弃支持相关,现代驱动器在使用时不会显着降级。

是的,拥有更多的服务器和内存甚至更好,但是当你获得100GB的固态硬盘(也许200美元)时,100GB内存的服务器将花费你大约100倍 – 仅仅用于内存。 功耗也可能是100的因素。

我认为SSD将会非常适合交换,从less数几个IOPS到几万个就是您所需要的。 但是:我只是在这里看到 – 我很想看到基于SSD交换的实际数字。

编辑:为了回答OP,我同意内核可能比你更聪明(没有冒犯!:-),所以你也可以尝试用你的旧的旋转磁盘来超额configuration。

除了另外两个非常好的回应之外,你可能要把KSM看作是在RAM中结合相同数据的一种方式。 它被合并到2.6.32版本的linux中。

现在我们来看看:

100GB x 100K写入= 10000TB可写入SSD。 10000TB / 100MB / s = 10Ms,直到SSD损坏。 10Ms = 2778h = 116days假设我们有一个超级控制器,它消除了几乎所有的热点,我们得到了90天…

90天!= 3000年