n-tier应用的profiling

July 24th, 2006 11:46 pm

近来在分析一个三层架构Web应用的性能问题。由于应用响应速度慢,需要分析出耗时的瓶颈到达在哪里,所以在数据库起了监控服务、在Application server写了log、甚至还分析了HTTP server的log。因为性能瓶颈可能出现在1)浏览器到Application Server的网络连接;2)Application server的用户代码;3)Application server到数据库服务器的网络连接;4)数据库服务器上运行的SQL和各种存储过程、触发器等。

很需要一个工具可以简单的从浏览器发出请求后,一路钻到web server,application server和database server里面,看看分别在各处消耗了多少时间,在路上花了多少时间,并且能图示化的显示请求和响应一来一回的profiling的全过程。

在不插入定制代码的情况下,要实现这样的功能难度很大。在DB这端可以在JDBC上加层wrapper捕获对数据库的请求;在application server这端可以在container级别捕捉到对DB的请求,然后分别记录并跟踪。“捕捉”似乎有些AOP的意思,如果对资源的访问都可以映射到有限的API上的话,AOP应该是个合理的解决方法。

如果有人知道有这样的整合式profilier,能免去那些debug的”System.out”和在应用、数据库服务器各处设置的绊马索,就太好了。

5 Responses to “n-tier应用的profiling”

  1. paulex says:

    Application Server应该有个监控console可以看到JSP/Servlet/EJB/线程的资源占用和响应时间的吧?应该可以用来找到hotspot和bottleneck在哪里。

  2. Zhang Ling Zhang Ling says:

    可以动态的针对当前请求吗?我去看看。

  3. Andy says:

    有这样的:)。

  4. Zhang Ling Zhang Ling says:

    在TSS上看到jKool,一个可以monitor多层应用的performance tool。

  5. […] 大约一个月前,我发了篇帖子寻找n-tier应用的性能分析工具,现在基本上可以说,在IBM找到了合适的答案。经过自己的研究,同时咨询了北京Tivoli产品组的同事,而今天又来到张江和performance team的几位同事交流,收获很大。 […]

Leave a Reply

*