我注意到,在我的Grails应用程序部署了大约2周后,性能显着降低 ,我必须重新部署。我正在使用Spring Security插件并缓存用户。我的第一个倾向是它与此和会话缓存大小有关,但我不确定如何验证这一点。
听起来我是在正确的轨道上吗?有没有其他人经历过这个并缩小了问题?任何帮助都会很棒。
谢谢!
答案 0 :(得分:4)
答案 1 :(得分:3)
我建议获取YourKit(VisualVM的信息有限)并使用它来在生产中分析您的应用程序(如果可能)。
或者,您可以创建性能测试(例如JMeter)并对您怀疑导致性能降级的应用程序部分进行性能测试。
在运行一些简单的JMeter性能测试时监控内存,cpu,线程,gc等肯定会找到罪魁祸首。通过这种方式,您可以轻松地重新测试系统,看看是否已经包含了新的“性能查杀”错误。
性能测试工具/服务:
答案 2 :(得分:2)
我还会考虑安装app-info插件并打开一些选项(特别是围绕hibernate)以查看事情是否已经失控。可能是填充hibernate会话但从未关闭事务的东西。
另一个值得关注的领域是你是否正在使用groovy模板引擎。这有一个已知的内存泄漏,如果你没有缓存类/结果,那就是不可修复的。最近修复了我们的应用程序周围的问题。如果你看到任何perm gen错误,可能就是这种情况。
答案 3 :(得分:1)
尝试安装Javamelody插件。在我们的例子中,它有助于发现GC的问题。