定義調整原則來管理工作量

調整原則用來根據可配置的度量,來啟動和停止動態叢集成員。您可以將「調整原則」定義給所有或特定的叢集。如果沒有定義原則,會使用內建原則。

關於這項作業

調整控制器會使用調整原則,來制定關於管理工作量的決策。依預設,內建調整原則內嵌在調整控制器中。您可以選擇性地定義任一或兩個最上層元素(預設調整原則和調整原則),來置換內建調整原則。內建調整原則如下:
  • 至少有兩個叢集成員(若有的話)維持作用中。如果部分或所有成員超過度量臨界值,可能不符合下限。
  • 當所有作用中成員的平均 CPU、資料堆或記憶體的使用率超過 90%,會啟動另一個叢集成員。
  • 當平均 CPU 和資料堆使用率落到 30% 以下,會停止一個叢集成員。

您可以使用預設調整原則,將調整原則定義給所有叢集。預設調整原則會繼承內建調整原則的度量,包括 minmax 實例值。對預設調整原則所做的任何變更(由使用者所指定),將會置換內建值。沒有指定在預設調整原則中的值將會繼承自內建調整原則。

與預設調整原則不同的是,調整原則度量不會繼承自內建或預設調整原則。 不過,minmax 實例值會起始設定為內建原則值。由於調整原則度量被視為選用值,所以只有在原則中指定的度量,才會包含在調整決策中。在制定調整決策時,不會分析沒有包含在調整原則中的度量。

調整原則有兩個層次。您可以定義任一或兩個最上層元素,來置換內建調整原則。以下是您可以定義的兩個層次:
  • 預設調整原則

    您可以定義單一預設調整原則,來管理不需要定義更明確調整原則的所有叢集。

    下列範例顯示如何定義預設調整原則,以便將作用中的叢集成員數目下限設為 3。
    <scalingDefinitions>
     <defaultScalingPolicy min="3"/>
    </scalingDefinitions>
  • 調整原則

    您可以定義調整原則,使用調整原則中指定的目標準則,來管理一或多個叢集。由於調整原則定義不會繼承度量臨界值,因此只會監視已指定的度量臨界值。其他所有的臨界值因關係到調整決策,因此會被忽略。內建調整原則的 minmax 實例值即使沒有指定,還是會採用。

    下列範例顯示如何定義調整原則,以便變更啟動和停止叢集 cluster1 中的伺服器時所依據的 CPU 使用率臨界值。
    <scalingDefinitions>
      <scalingPolicy id="cluster1Policy">
      <bind clusters="cluster1"/>
      <metric name="CPU" min="10" max="70"/>
     </scalingPolicy>
    </scalingDefinitions>
    bind 元素的 clusters 屬性值是一份以逗點區隔的叢集名稱清單。只能在名稱尾端使用星號,來作為符合零或多個字元的萬用字元。例如:
    <bind clusters="west,south*"/>
    在這個範例中,調整原則會套用至名稱是 west 的叢集,以及其名稱開頭是 south 的所有叢集。如果叢集名稱符合多項原則,調整控制器會使用下列規則來選擇原則:
    • 完全相符項優先於萬用字元相符項。
    • 如果有多項符合萬用字元,會使用具有最長字首的原則。

原則將根據預設 minmax 值來調整。在上述範例中,叢集將只會根據指定的 CPU 值來調整,其中 min=10max=70

以度量為依據的調整決策是在叢集層次進行。每一個叢集成員會監視自己的度量。事實上,伺服器的 CPU 與記憶體度量值大於伺服器 JVM 程序或伺服器主機。資料堆度量值只會從伺服器 JVM 程序取得。如果在受監視的度量中偵測到重大變更,會將該度量傳送給控制器分析。會累計所有叢集成員的度量,並計算每一項度量的叢集平均值。接著會將所算出的每一個度量值,與所定義的臨界值上限或下限做比較,來判斷是否要觸發調整決策。

橫向擴充決策是根據個別的度量來制定。會分析叢集所有受監視的度量,只要有度量超過原則 max 臨界值,就會觸發橫向擴充事件。橫向縮減決策是根據所有受監視的度量來制定。會分析每一個受監視度量的叢集平均值。 如果所有度量都低於其原則 min 臨界值,就會觸發橫向縮減事件。

一旦制定調整決策,調整控制器會選取調整目標。調整目標是執行伺服器停止(橫向縮減)或伺服器啟動(橫向擴充)動作的主機。在判斷擴充動作的目標時,會將主機層次的度量納入考量。若有任何主機層次的度量超過該度量的原則 max 臨界值,調整控制器會避開該主機,並選擇另一部主機來執行橫向擴充動作。

調整原則可以影響調整目標的選擇。如果原則指定 scalingPreference="horizontal",調整控制器會啟動具有最少作用中伺服器的合格主機上的伺服器,並停止具有最多作用中伺服器的主機上的伺服器。如果原則指定 scalingPreference="vertical",調整控制器會啟動具有最多作用中伺服器的合格主機上的伺服器,並停止具有最少作用中伺服器的主機上的伺服器。如果可能,調整控制器會嘗試將伺服器放在不同主機上的相同叢集中,而不考慮所選擇的 scalingPreference

如需 scalingPolicy 度量的相關資訊,請參閱調整控制器

您可以利用 hostGroup 元素,限制可選取哪些主機來供應新伺服器。 tags 屬性指定一份管理 meta 資料標籤清單。 當調整控制器需要供應伺服器時,它只能選取至少有一個相符標籤的主機。 例如,下列原則指出可以在與 tag1 相關聯或與 tag2 相關聯的主機上供應伺服器。
<scalingDefinitions>
  <scalingPolicy id="provisionPolicy">
   <bind clusters="defaultStackGroup.deployMember"/>
   <hostGroup tags="tag1 tag2"/>
 </scalingPolicy>
</scalingDefinitions>
註: 如果未指定 hostGroup 元素,調整控制器可以在任何已向群體登錄的主機上供應伺服器。

如需設定管理 meta 資料標籤的相關資訊,請參閱設定 Liberty 資源的管理 meta 資料

程序

  1. 在調整控制器的 server.xml 檔中,新增預設調整定義。
    <scalingDefinitions>
     <defaultScalingPolicy enabled="true" min="1" max="2"/>
    </scalingDefinitions>
  2. 當修改調整原則時,也會修改控制器中的 server.xml。您可以檢查 messages.log 檔中是否有下列訊息,以驗證控制器已順利更新。
    CWWKG0016I: 正在啟動伺服器配置更新。
    CWWKG0028A: 正在處理所包含的配置資源:/opt/IBM/Liberty/wlp/usr/
    CWWKG0017I: 已在 0.052 秒內順利更新伺服器配置
    如果調整原則遺漏必要的度量臨界值,您會在 messages.log 檔中看到下列錯誤訊息。請遵循使用者動作,來更正錯誤。
    CWWKV0126W: 調整原則 {0} 的配置沒有包含 min 或 max 臨界值。
    CWWKV0127W: 調整原則 {0} 的配置沒有包含 max 臨界值。
    CWWKV0128W: 調整原則 {0} 的配置沒有包含 min 臨界值。

結果

現在已定義您的調整原則。


指示主題類型的圖示 作業主題

檔名:twlp_wve_definingscalingpolicies.html