0

我有一个性能很好的网络应用程序,然后突然页面请求将冻结并超时,然后一切都会再次变得花花公子,同样的事情也会发生。

我很难弄清楚这一点,因为可以分析的变量太多了。

有什么办法:一个工具或步骤计划可以帮助我深入了解并从页面请求到数据库调用基本上分析整个事情并识别潜在问题?我使用 New Relic 和 MAT,我刚开始使用 Javamelody,但老实说:重点在哪里?通常,当页面冻结/超时时,并不清楚瓶颈在哪里。需要注意哪些阈值/危险信号?

亲切的问候,马克

4

2 回答 2

1

对于服务器端,我发现jstack通常是比分析器更好的工具。主要是因为它快速、命令行并且已经随服务器的 JDK 一起安装。

Web 应用程序间歇性变慢的一个典型原因是线程等待某个锁释放。

当 Web 应用程序出现卡住时运行jstack并查看线程以查看哪些线程卡在锁上以及锁是什么。这是一个快速教程,因为它起初听起来令人生畏,但它真的很简单。

于 2012-12-05T21:13:50.473 回答
0

根据这里和其他地方的提示,我发现了一些似乎影响了事情的事情,尽管我们必须看看它在长期内是如何运作的。现在,它似乎更好了,尽管我很难指出究竟是什么造成了最大的不同。我所做的事情: * 使 Spring 数据源变得惰性,以便可以从缓存中提供服务的请求不会创建不必要的事务 * 将 mySQL thread_cache_size 更改为 50。之前是 8。* 从 c3p0 更改为 BoneCP

目前,间歇性停顿似乎不再发生。

于 2012-12-06T16:20:40.247 回答