如何监控HTTP连接池?

4
我有一个WebSphere应用程序,我想监控HTTP连接池(当前处理的HTTP连接),并将这些数据记录到文件中。WebSphere应用服务器有自己的监控工具,但是据我所见,没有这种监控参数。它提供了当前处理的IIOP请求、Servlet会话、HTTP会话、活动Bean、并发出站连接和一些其他统计信息。完整的信息在这里
如何监视HTTP连接池(当前处理的HTTP连接)并将此数据记录到文件中?

没有使用WebSphere,但我使用过其他容器(例如weblogic、tomcat),通常会公开包含此类内容的JMX MBeans。 - BretC
你可能需要安装"MBeans"插件。一旦连接到进程,一些"MBeans"将出现在适当的选项卡中。如果您在不同的机器上运行VisualVM和WebSphere,则必须确保WebSphere开放了JMX端口。很抱歉我不能提供更多帮助,因为我从未使用过WebSphere。 - BretC
快速谷歌搜索“WebSphere JMX”可能会有所帮助,例如... http://blog.monitis.com/2012/09/12/configuring-jmx-in-websphere-8-5/ - BretC
@Bert 好的,我会尝试那个插件。当我说“我已经设置好了VisualVM”时,我是指我已经成功通过JMX连接到WebSphere,但我不知道在VisualVM中哪里可以找到有关HTTP连接的信息。;) - ctomek
@Bert,我没有看到与HTTP相关的任何bean。这是我看到的:visualvm屏幕截图。无论如何,我需要一个可以将此信息记录到文件中的工具,不幸的是VisualVM没有提供此功能。但是,如果可以通过VisualVM监视HTTP连接池,我仍然很感兴趣。 - ctomek
显示剩余2条评论
1个回答

1

你的说法并不完全正确。

首先,你可以通过 PMI 监控 WAS 中的任何线程池。在此处查看计数器以了解可以从监视池中获取的内容 - http://www-01.ibm.com/support/knowledgecenter/api/content/nl/pl/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/rprf_datacounter9.html

该线程池称为 WebContainer 线程池。

其次,你可以直接使用 web admin 控制台将所有这些计数器数据存储到文件中。进入 Monitoring and Tuning > Performance Viewer > Current activity,选择服务器,然后在 PMI viewer 中选择 Settings > Log 来定义日志记录周期和格式。在 Modules > Thread pools > WebContainer 中,你可以查看当前计数器值。

这更适用于短期监视而非常规日志记录。还有一种通过控制台加载和重放日志以查看收集数据的选项。

当然,这些计数器可以通过JMX访问,因此您可以编写自定义客户端(如果需要)。

更新

如果您特别关注Web服务计数器,则有单独的Web服务监控模块可供使用。有关详细信息,请查看此页面 Monitoring the performance of web services applications

您将能够看到:

  • 分派给实现bean的请求数量
  • 成功回复的请求数量
  • 处理完整请求所需的平均毫秒数
  • 接收请求并将其分派到bean之间的平均毫秒数
  • 从bean接收答复和发送答复之间的平均毫秒数。 这代表了在业务逻辑中花费的时间。
  • 从bean接收答复到将结果返回给客户端的平均毫秒数
  • SOAP请求的平均大小
  • SOAP答复的平均大小

@user3733758 WebContainer线程池用于处理传入的HTTP流量,因此也用于HTTP Web服务。 - Gas
@user3733758 我已经更新了答案,增加了一些Web服务监控的细节。 - Gas
谢谢,我在 PMI 树中选择了我的 Web 服务:Web 服务 -> myWebService.war -> services,点击了“查看模块”,你描述的计数器出现了,但它们仍然是 0。我正在通过 SoapUI 发送请求,WebContainer 计数器 ActiveCount 的值增加,但 Web 服务计数器 ReceivedRequestCount 仍然是 0。可能出了什么问题? - ctomek
@user3733758 也许你使用了第三方Web服务引擎,嵌入到你的应用程序中,而不是使用内置于WebSphere中的一个,那么这种监控就无法工作,因为你使用了不同的实现类。 - Gas
Web服务是在Rational Application Developer中创建的,具有以下设置:在RAD中的窗口->首选项:Web服务->服务器和执行环境:Web服务执行环境设置为IBM WebSphere JAX-WS(Axis可在此字段中选择,但未被选中)。 Web服务在WAS for Developers上运行,当我在浏览器中键入Web服务URL时,来自Axis的消息出现了,因此可能存在问题或我遗漏了某些内容。 - ctomek
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接