2012-07-09 65 views
0

我们有一个运行在Apache-tomcat服务器上的Java EE应用程序(jsp/servlet,jdbc)。响应时间随着时间减慢。在继续工作时,它会以更快的速度减速。性能---响应时间变慢

响应时间是服务器重启后恢复正常。

我的JConsole连接到服务器,我附上堆内存使用量,做深入细致的工作和垃圾收集器定期揭开序幕和内存使用情况归结时上升的屏幕截图。 但是,当朝着最后测试时,尽管手动启动垃圾回收器,响应时间不会减少。我 我也检查了连接,他们似乎正常关闭。即我没有注意到任何zcx Heap memory usage

任何帮助表示赞赏。

+0

你检查的资源,这可能不是在泳池 - 这还没有被释放等你有没有定时测试各种操作,也许的Perf4或指标,长寿命的对象,外部资源来检查放缓实际上正在哪里地方 – 2012-07-09 23:40:51

+0

我看了一些被加载的资源,他们从来没有卸载,例如一些DAO类,这是否说什么? – user546352 2012-07-10 01:35:39

回答

0

与安装在JDK jvisualvm。它可以让你剖析Tomcat并找出时间。

我的猜测,现在是与数据库的连接。要么他们陈旧或泳池干燥。

+0

谢谢你使用这个工具,它效果很好。现在我必须确定如何解决这些问题:( – user546352 2012-08-01 01:43:57

0

响应时间慢多少?你有没有做过任何分析或日志记录来帮助你知道你的应用的哪些部分比较慢?设置一个简单的servlet可能会很有用,看看这个servlet是否也会像其他的那样变慢。这可能会告诉你,如果Tomcat或您的应用程序中的东西放缓。

+0

最坏情况的响应时间增加3-5倍。重点在于完成大部分核心工作的主要servlet之一,并且是一个高频servlet并具有传统。 我如何知道Tomcat是否有问题? – user546352 2012-07-10 01:29:30

0

你是否优化了你的tomcat内存设置?也许你需要增加烫发的大小。 例如-XX:MaxPermSize参数= 512M

你可以知道它肯定如果你能得到一个堆转储并加载到像MemoryAnalyzer的工具。

+0

烫发代码大小设置为512M,加载的类总数仍然很高,这是否表示什么?我将启用堆转储。 – user546352 2012-07-10 01:50:23