Linux
SSD 作為 Linux 交換大型虛擬記憶體應用程序?
這個問題主題涉及到這一點,但在 64 位 Linux 上執行,我有一組數據記憶體 JVM,並且想要一個大型 Web 記憶體。今天的每個記憶體都配置為完全適合系統記憶體 (24GB),並以 LRU 的形式保存到磁碟。
但是我很好奇如果我們過度分配記憶體程序並為高優先級 Linux 交換設置 SSD 時的性能。我想知道 Linux 核心是否可能比我們簡單的 LRU 程序更智能/更快?
我擔心過度分配 JVM 堆並讓核心交換堆頁面,因為 GC 必須定期遍歷所述頁面。
我建議 SSD 不適合交換分區,因為它們的性能會隨著時間的推移隨著大量寫入或寫入而下降。這與 SSD 的寫入壽命有限這一事實有關,因此會使用各種技巧來最小化單個扇區的重寫次數。
恐怕我會不同意其他回答。是的,SSD 只需要 100K 寫入。對於 100GB 驅動器,這意味著寫入 10^16 字節,或 3000 年的 100MB/s 穩定流。即使負載平衡非常糟糕,你只能得到其中的 1% ……好吧。此外,性能下降是通過丟棄支持來處理的,現代驅動器不會隨著使用而明顯下降。
是的,擁有更多的伺服器和 RAM 會更好,但是如今您以 200 美元的價格獲得 100GB 的 SSD,而具有 100GB 的 RAM 的伺服器將花費您大約 100 倍的成本 - 僅用於 RAM。功耗也可能是 100 倍。
我認為 SSD 非常適合交換,從少數 IOPS 到數万正是您所需要的。但是:我只是在這裡發表意見——我希望看到基於 SSD 交換的真實數字。
編輯:回答 OP,我同意核心可能比你更聰明(無意冒犯!:-),所以你也可以嘗試用舊的旋轉磁碟過度分配。