性能管理
藉由 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 元素內。每一項性能原則可指定多個目標。