我使用Apache 7.02作为服务器,我使用sphinx4创建了一个应用程序并将其部署在apache server.Since上--为此目的,Sphinx4应用程序需要大量内存到execute.So --为此,我将大量内存分配给java空间(导出CATALINA_OPTS="-Xms1536m -Xmx1536m")。我在服务器上部署的服务器是一个64位系统,上面有Debian和2Gb的RAM。我创建了一个Servlet,向它发布数据,得到结果.当我为10个用户运行它时,它需要大约8分钟的时间来处理,但是如果我同时运行100个用户,那么它将显示在tomcat状态上。
空闲内存:37.0MB总内存: 1484.81 MB最大内存: 1484.81 MB
我也尝试过使用System.gc(),但是它没有gud.So,通过它我可以检查JVM的内存状态并在需要时释放它吗?
发布于 2011-02-09 08:36:24
您需要确定资源正在使用的位置。我建议您使用内存分析器并更改程序以减少内存消耗。
如果使用64位JVM,可以使用-XX:+UseCompressedOops来减少内存消耗(它使用32位引用而不是64位引用)。
编辑:如果您不能优化您的应用程序,这可能是值得考虑升级您的服务器。一台24 GB的服务器可能要花费大约1,800 GB,并且可以在不更改代码的情况下扩展到1000个用户。;)
https://stackoverflow.com/questions/4942667
复制相似问题