通过 GC 调整,我成功地获得了实时 Java 应用程序的性能并避免了可识别的 GC 暂停。但是,这最多可容纳约 20 GB 的堆空间。
硬件成本的降低使得即使是 100GB 的 RAM 机器也可以负担得起。但是,由于 GC 暂停,Java 仍然存在,更高的堆大小(如 50 GB)可能会让您经常陷入噩梦。
我知道有诸如堆外和分布式堆之类的选项。但是,off-heap 具有 se/derialization 的缺点,并且手头上的分布式堆增加了维护成本。此外,在分布式堆中,您实际上并没有充分利用 RAM(比如 64 GB),这些天作为商品变得普遍。
那么,要充分发挥 RAM 的潜力,Java 应用垂直扩展有哪些好的解决方案呢?