我正在浏览 JBOSS 手册,其中读到了有关 LARGEPAGES 的内容。 我们已经为堆分配了超过 10GB 的空间。
我想知道使用它是否真的能带来任何好处?或者这样做有什么副作用吗? 是否有任何工具或实用程序可以让我们知道正在创建的页面。基本上我想分析页面相关的性能
到目前为止我所做的如下: 1)更改了运行 jboss 的 Windows 中的本地安全策略,以包含将运行 Jboss 的用户帐户。我需要在运行 jboss 或运行数据库的地方执行此操作吗?
2)在jboss启动脚本中添加了-XX:+UseLargePages -XX:LargePageSizeInBytes=2m。
除了上述之外还有什么需要做或者我需要处理的吗?
机器详情 a)Windows服务器8 b) 处理器:英特尔至强
在我看来,像 JBoss 等 Web 应用服务器的 10G 堆非常巨大。
大的堆大小意味着,它需要更多的 Full GC 时间。正如你所知,在完整的 GC 时间内,它会冻结世界。
使用这么大的内存有什么具体原因吗?
如果你的盒子里有大内存,我建议你在盒子里运行#个Jboss实例,并使用反向代理来负载平衡。这样会更有效率。
处理多大的页面以及它们是否真的有帮助取决于您的操作系统。 例如,如果您的处理器最高可达 Sandy Bridge,则它的 TLB 缓存中最多可以有 8 个大页面。对于最新的Haswell来说,最多可以有1024,这显然是一个很大的区别。
在某些版本的 Linux 中,您必须提前保留大页面,并且预分配此内存可能会有优势。
但是,我不知道在 JVM 中使用大页面有什么大的性能优势。 esp 适用于更大的堆和 Haswell 之前的处理器。
顺便说一句,现在 10 GB 已经不算大了。 CompressesOops 的限制约为 30 GB,恕我直言,最多是中等大小的堆。