代码之家  ›  专栏  ›  技术社区  ›  topchef

在生产Java应用程序中使用JMX监视什么?

  •  31
  • topchef  · 技术社区  · 15 年前

    这个问题不是关于JMX如何工作或者JMX做什么。这个问题是关于JMX在生产中的标准应用程序服务器环境中的应用程序。它也不适用于特定的服务器。

    5 回复  |  直到 9 年前
        1
  •  30
  •   Cyrille Le Clerc    14 年前

    级别,我监视每分钟的垃圾收集持续时间,

    Servlet容器 级别,我监视请求数、异常数(4xx和5xx代码)、每分钟请求持续时间的总和,

    肥皂

    webmvc框架 级别,我监视调用数、异常数和;每个操作和每分钟的调用总数,

    游泳池( 数据源、线程池/执行器服务

    对于 JMS 连接时,我会监视发送的;每分钟接收的消息,以及活动接收器的数量,

    对于 ,我监视缓存中的条目数、命中数和;每分钟失误次数,

    业务应用

    如果您对这类指标感兴趣,我们开发了许多JMX额外功能(dbcp、util.concurrent、jms、@profiled annotation),并将所有这些功能与基于Spring XML命名空间的配置、Hyperic HQ插件、监控jsp页面等打包在一起

    详情如下: http://code.google.com/p/xebia-france/wiki/XebiaManagementExtras .

    所有这些代码都是根据业务友好的开放源码Apache软件许可证2授权的,该许可证部署在Maven Central Repository上,可作为jar下载,并可在Google code Subversion服务器上以您想要的方式集成。

    西里尔(锡比亚)

        2
  •  8
  •   Rob Smith    15 年前

    我已经使用JMX公开了一个MBean,该MBean允许动态调整Log4J记录器级别。这对于集群应用程序非常有用,因为我们不想修改所有节点上的log4j配置文件来更改指定记录器的日志级别。

        3
  •  5
  •   Brian Agnew    15 年前

    我最常见的需求是监视线程数和内存。我最近的工作涉及将多线程服务器调度到网格,监视线程使用情况(服务器正在执行的调度工作的度量)非常重要。内存与线程使用密切相关(部分原因是与每个线程关联的对象,部分原因是每个线程的隐式堆栈分配)。

    症状 影响 对工作项进行排队,但最终我们希望监视实际的工作队列。通过JMX公开关键组件是值得的,这样可以更清楚地了解正在发生的事情。

        4
  •  1
  •   Gaël Marziou    15 年前

    在以前的一个项目中,我们监控线程数和内存、HTTP会话数和查询缓存的大小。JMX对缓存的另一个兴趣是可以强制刷新。

        5
  •  1
  •   Javamann    15 年前

    有一点OT,但您可以使用JMX进行更多操作。目前我正在使用JMX来热部署/热修复组件。向现有组件(过滤器等)动态添加功能。JMX适合于同一JVM上的组件之间的通信。我创建的每个组件都被检测为使用JMX。