如何优化JVM以利用更少的资源

时间:2011-02-09 08:23:44

标签: java tomcat jvm sphinx4

我正在使用Apache tomcat 7.02作为服务器。我使用sphinx4创建了一个应用程序并将其部署在apache tomcat server上。因为这个Sphinx4应用程序需要大量内存来执行。所以为此目的,我把大量的内存分配给java堆空间(导出CATALINA_OPTS =“ - Xms1536m -Xmx1536m”)。我部署服务器的服务器是一个带有Debian Lenny的64位系统,以及2Gb的RAM。我创建了一个Servlet,向它发布数据,得到结果......当我为10个用户运行时,它需要大约8分钟来处理,但如果我同时为100个用户运行它,它会在tomcat状态显示这个

  

可用内存:37.0 MB总内存:   1484.81 MB最大内存:1484.81 MB

我也尝试过使用System.gc(),但它没有使用gud.So有什么方法可以检查JVM的内存状态并在需要时释放它?

1 个答案:

答案 0 :(得分:4)

您需要确定资源的使用位置。我建议您使用内存分析器并更改程序以减少内存消耗。

如果您使用的是64位JVM,则可以使用-XX:+UseCompressedOops来减少内存消耗(它使用32位引用而不是64位引用)

编辑:如果您无法调整应用程序,则可能值得考虑升级您的服务器。 24 GB服务器的成本约为1,800英镑,可能允许您在没有代码更改的情况下扩展到1000个用户。 ;)

相关问题