为JBoss指定最佳的最小和最大堆大小

| 我有一个要部署在Linux机器上生产的Web应用程序。该机器将在JBoss 4.2.3上运行,并且它的前面是Apache Web Server的最新版本(使用mod_jk)。这是计算机上仅有的两个应用程序。该服务器具有1.7GB RAM。对于在此生产环境中如何找到JBoss的最佳最小(-Xms)和最大(-Xmx)堆大小的信息或参考,我将不胜感激。 问候     
已邀请:
找到最佳堆大小的一种好方法是使用VisualVM(http://hillert.blogspot.com/2010/01/remote-profiling-of-jboss-using.html)并进行负载测试。这使您可以可视化负载下的堆使用情况以及垃圾收集的时间和频率。选择一个像这些绅士建议的数字(在您的情况下介于700mb和1024mb之间),将您的实例加载,并查看内存配置文件。我怀疑您会发现1.7GB不足以用于大多数生产应用程序。这通常表现为大量gc抖动,响应时间短和/或内存不足错误引起的刺眼的cpu图表线。关键是要经过测试才能确定。     
好吧,这通常取决于每个应用程序以及操作系统的负载,但是我将最大堆大小设置为1024或1280。请看一下OS和Apache使用了多少内存以及一些峰值缓冲。     
每个应用程序都有不同的要求,因此很难为您的情况提供最佳答案。但是,通常我发现,当服务器仅运行Apache和Java时,将60%的服务器内存分配给JVM堆效果很好。 因此,我建议您为服务器设置“ 0”。这应该为OS开销,Apache和Java内存超出堆空间(即永久生成和堆栈大小乘以线程数)留出足够的空间。您应该尝试并分析您的应用程序,以验证其是否稳定。     

要回复问题请先登录注册