为什么 Jetty 不使用所有分配的内存?
我们使用 Grails 开发 Web 应用程序。在生产环境中,Web 应用程序在 Jetty 上运行。我们使用 JMeter 来运行性能测试,并使用 yourkit 来分析 jetty 的内存消耗。
我们使用参数 -Xms1500m -Xmx1500m 启动 Jetty,因此在 yourkit 中我们还可以看到分配的内存约为 1,5GB。但 Jetty 并没有全部使用它,总是在 300 - 500m 左右,并且性能不佳。只能满足很少的请求/秒。
- CPU 未满载,所有时间只有约 50%
- Jetty 在默认设置下运行,使用 6.1.21
- MySQL 查询很简单,数据库大小很小,并且与 Jetty 运行在同一台机器上,不可能是
- 写入日志 的问题通过 FileAppender 到 HDD
- JMeter 会产生足够的请求
- Yourkit 显示活动线程的数量约为 60 个
,那么我们如何强制 jetty 使用所有分配的内存以获得更好的性能?
非常感谢你!
we develop the webapp with Grails. In productio the webapp runs on Jetty. We used JMeter to run performance-test and yourkit to analyse the memory consumtion of jetty.
We started Jetty with params -Xms1500m -Xmx1500m, so in yourkit we can also see the allocated memory is about 1,5gb. But Jetty does not use it all, all time always about 300 - 500m and delivers bad performance. can serve only few requests/s.
- CPU ist not full loaded, all times only about 50%
- Jetty is running with default settings, 6.1.21 is used
- MySQL queries are simple, DB size is small and runs on the same machine as Jetty, could not be the problems
- Logs r written over FileAppender to HDD
- JMeter produces enought requests
- Yourkit shows the number of live threads is about 60
so how can we force jetty to use all allocated memory for better performance?
Thx you very much!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题可能不是内存,看起来你的内存足够了。
您可能还有其他争论点,例如独占锁。
我建议您拍摄几张线程快照,以检查它们卡在哪里。你应该找到争论。
The problem is probably not the memory, it looks like you have enough.
You have probably other points of contention, for example exclusive-locks.
I suggest you take several snapshots of your threads, to examine where they are stuck. You should find the contention.