我们使用 Grails 开发 webapp。在 productionio 中,webapp 在 Jetty 上运行。我们使用 JMeter 运行 performance-test 和 yourkit 来分析 jetty 的内存消耗。
我们使用参数 -Xms1500m -Xmx1500m 启动 Jetty,所以在 yourkit 中我们还可以看到分配的内存大约为 1.5gb。但是 Jetty 并没有全部使用它,总是大约 300 - 500m 并且性能很差。只能服务几个请求/秒。
- CPU 没有满载,一直只有 50% 左右
- Jetty 使用默认设置运行,使用 6.1.21
- MySQL 查询很简单,DB 很小,和 Jetty 在同一台机器上运行,不会是问题
- 日志 r 通过 FileAppender 写入 HDD
- JMeter 产生足够的请求
- Yourkit 显示活动线程数约为 60
那么我们如何强制码头使用所有分配的内存以获得更好的性能呢?
非常感谢你!