我有一个网络应用程序,性能很好,然后突然一个页面请求会卡住并超时,然后一切都会恢复正常,然后发生同样的事情。
我很难弄清楚这一点,因为可以分析的变量太多了。
有没有什么方法:一个工具或步骤计划可以帮助我深入了解这个问题,并基本上分析从页面请求到数据库调用的整个过程并识别潜在的问题?我使用 New Relic 和 MAT,我刚刚开始使用 Javamelody,但说实话:该关注哪里?通常,当页面卡住/超时时,不清楚瓶颈在哪里。需要注意的阈值/危险信号是什么?
亲切的问候, 马克
最佳答案
对于服务器端,我发现 jstack通常是比分析器更好的工具。主要是因为它速度快、命令行并且已经随服务器的 JDK 一起安装。
Web 应用程序间歇性变慢的一个典型原因是线程正在等待释放某些锁。
当网络应用程序出现卡住时运行jstack
,并查看线程以查看哪些线程卡在锁上以及锁是什么。这是一个快速tutorial因为一开始听起来可能令人畏惧,但实际上很简单。
关于java - 如何对tomcat进行端到端性能分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13732396/