运行状况管理
借助 Liberty 中的运行状况管理功能部件,可采用策略驱动的方法来监视应用程序服务器环境,并在发现非正常条件时执行相应的操作。
可定义运行状况策略,这些策略包括要在您的环境中监视的运行状况条件及满足这些条件时要执行的运行状况操作。
运行状况条件
运行状况条件定义环境中需要监视的变量。此条件元素定义可触发此运行状况策略的行为。对于每个运行状况策略,只能定义一个条件元素。可以从下列预定义的运行状况条件选择:
- 超出请求超时条件
- 指定可超时的 HTTP 请求的百分比。当请求的百分比超过定义的值时,运行状况操作将运行。超时值取决于您的环境配置。
<excessiveRequestTimeout timeoutPercentage="5"/>
注: 必须启用动态路由选择以使用此条件。 - 超过响应时间条件
- 跟踪完成请求的平均时间。如果时间超过定义的响应时间阈值,那么运行状况操作会运行。
<excessiveResponseTime responseTime="10s"/>
注: 对于此运行状况条件,超过针对过长请求超时条件配置的超时值的请求不会被计入其中。例如,如果缺省超时值设置为 60 秒,那么超过 60 秒的任何请求将超时,并且不会包括在此运行状况条件的平均响应时间计算中。即使您没有定义过长请求超时条件,此限制仍适用。注: 必须启用动态路由选择以使用此条件。 - 内存条件:超出内存使用率
- 跟踪成员的内存使用率。内存使用率在指定时间内超过堆大小的某个百分比时,将运行相应运行状况操作。
<excessiveMemoryUsage heapSizePercentage="85" timePeriod="5m"/>
- 内存条件:内存泄漏
- 检测到可用内存有下跌趋势时,将运行运行状况操作。
<memoryLeak/>
运行状况操作
运行状况操作定义不符合运行状况条件时要执行的活动。操作元素定义为响应检测到的条件要执行的操作。所有操作共用元素类型 <action>。操作属性确定所执行的操作,可对每个运行状况策略定义多个操作。操作按在策略中指定它们的顺序运行。下表列示在 Liberty 服务器环境中受支持的运行状况操作:
运行状况操作 | 在相同集合体控制器中运行的 Liberty 服务器 |
---|---|
重新启动服务器 | 受支持 |
执行线程转储 | 受支持 |
执行 Java™ 虚拟机 (JVM) 堆转储 | 对于在 IBM® JRE 或 JDK 上运行的服务器,受支持 |
将服务器置于维护方式 | 受支持 |
使服务器退出维护方式 | 受支持 |
<action action="generateThreadDump"/>
<action action="generateHeapDump"/>
<action action="restartServer"/>
<action action="enterMaintenanceMode"/>
<action action="exitMaintenanceMode"/>
运行状况目标
目标元素定义要针对该条件监视的拓扑的作用域。有三种目标类型:
- 主机
<host hostName="someHost"/>
- 集群中的每个服务器
<cluster clusterName="someCluster"/>
- 单个服务器
<server hostName="Host" wlpUsrDirectory="/opt/ibm/liberty/wlp" serverName="Server"/>
每个目标类型具有独有元素,该元素用于在 healthPolicy 元素中定义该目标类型。可对每个运行状况策略指定多个目标。