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

发布于 2024-10-16 07:11:57 字数 474 浏览 5 评论 0原文

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

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

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

I am using Apache tomcat 7.02 as a server.I created an application using sphinx4 and deployed it on apache tomcat server.Since this Sphinx4 application requires a lot of memory to execute.So for that purpose i alloted lot of memory as java Heap space(export CATALINA_OPTS="-Xms1536m -Xmx1536m"). The Server on which i have deployed the server is a 64bit System with Debian Lenny on it,along with 2Gb of RAM. I created a Servlet,post data to it,get the results... When i run it for 10 users it takes about 8 minutes to process but if i run it for 100 users simultaneously,thn it shows this on tomcat status

Free memory: 37.0 MB Total memory:
1484.81 MB Max memory: 1484.81 MB

I also tried using System.gc(),but it did no gud.So is there any way through which i can check the memory status of JVM and free it when needed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梅倚清风 2024-10-23 07:11:57

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

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

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

You need to determine where resources are being using. I suggest you use a memory profiler and change the program to consume less memory.

If you are using a 64-bit JVM you can use the -XX:+UseCompressedOops to reduce memory consumption (it uses 32-bit references instead of 64-bit references)

EDIT: If you cannot tune your application it may be worth considering upgrading your server. A 24 GB server can cost around £1,800 and might allow you to scale to 1000 users without a code change. ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文