Grails app性能会随着时间的推移而降低

时间:2011-05-21 04:16:02

标签: grails groovy

我注意到,在我的Grails应用程序部署了大约2周后,性能显着降低 ,我必须重新部署。我正在使用Spring Security插件并缓存用户。我的第一个倾向是它与此和会话缓存大小有关,但我不确定如何验证这一点。

听起来我是在正确的轨道上吗?有没有其他人经历过这个并缩小了问题?任何帮助都会很棒。

谢谢!

4 个答案:

答案 0 :(得分:4)

永远不要猜测优化的位置,这将是错误的。

获取堆转储和配置文件(VisualVM对我来说很好)。

这可能是内存泄漏,就像发生在我身上一样。你的环境是什么 - 操作系统,网络服务器,Grails?

答案 1 :(得分:3)

我建议获取YourKit(VisualVM的信息有限)并使用它来在生产中分析您的应用程序(如果可能)。

或者,您可以创建性能测试(例如JMeter)并对您怀疑导致性能降级的应用程序部分进行性能测试。

在运行一些简单的JMeter性能测试时监控内存,cpu,线程,gc等肯定会找到罪魁祸首。通过这种方式,您可以轻松地重新测试系统,看看是否已经包含了新的“性能查杀”错误。

性能测试工具/服务:

答案 2 :(得分:2)

我还会考虑安装app-info插件并打开一些选项(特别是围绕hibernate)以查看事情是否已经失控。可能是填充hibernate会话但从未关闭事务的东西。

另一个值得关注的领域是你是否正在使用groovy模板引擎。这有一个已知的内存泄漏,如果你没有缓存类/结果,那就是不可修复的。最近修复了我们的应用程序周围的问题。如果你看到任何perm gen错误,可能就是这种情况。

答案 3 :(得分:1)

尝试安装Javamelody插件。在我们的例子中,它有助于发现GC的问题。