定義調整原則來管理工作量
調整原則用來根據可配置的度量,來啟動和停止動態叢集成員。您可以將「調整原則」定義給所有或特定的叢集。如果沒有定義原則,會使用內建原則。
關於這項作業
- 至少有兩個叢集成員(若有的話)維持作用中。如果部分或所有成員超過度量臨界值,可能不符合下限。
- 當所有作用中成員的平均 CPU、資料堆或記憶體的使用率超過 90%,會啟動另一個叢集成員。
- 當平均 CPU 和資料堆使用率落到 30% 以下,會停止一個叢集成員。
您可以使用預設調整原則,將調整原則定義給所有叢集。預設調整原則會繼承內建調整原則的度量,包括 min 和 max 實例值。對預設調整原則所做的任何變更(由使用者所指定),將會置換內建值。沒有指定在預設調整原則中的值將會繼承自內建調整原則。
與預設調整原則不同的是,調整原則度量不會繼承自內建或預設調整原則。 不過,min 和 max 實例值會起始設定為內建原則值。由於調整原則度量被視為選用值,所以只有在原則中指定的度量,才會包含在調整決策中。在制定調整決策時,不會分析沒有包含在調整原則中的度量。
- 預設調整原則
您可以定義單一預設調整原則,來管理不需要定義更明確調整原則的所有叢集。
下列範例顯示如何定義預設調整原則,以便將作用中的叢集成員數目下限設為 3。<scalingDefinitions> <defaultScalingPolicy min="3"/> </scalingDefinitions>
- 調整原則
您可以定義調整原則,使用調整原則中指定的目標準則,來管理一或多個叢集。由於調整原則定義不會繼承度量臨界值,因此只會監視已指定的度量臨界值。其他所有的臨界值因關係到調整決策,因此會被忽略。內建調整原則的 min 和 max 實例值即使沒有指定,還是會採用。
下列範例顯示如何定義調整原則,以便變更啟動和停止叢集 cluster1 中的伺服器時所依據的 CPU 使用率臨界值。<scalingDefinitions> <scalingPolicy id="cluster1Policy"> <bind clusters="cluster1"/> <metric name="CPU" min="10" max="70"/> </scalingPolicy> </scalingDefinitions>
bind 元素的 clusters 屬性值是一份以逗點區隔的叢集名稱清單。只能在名稱尾端使用星號,來作為符合零或多個字元的萬用字元。例如:
在這個範例中,調整原則會套用至名稱是 west 的叢集,以及其名稱開頭是 south 的所有叢集。如果叢集名稱符合多項原則,調整控制器會使用下列規則來選擇原則:<bind clusters="west,south*"/>
- 完全相符項優先於萬用字元相符項。
- 如果有多項符合萬用字元,會使用具有最長字首的原則。
原則將根據預設 min 和 max 值來調整。在上述範例中,叢集將只會根據指定的 CPU 值來調整,其中 min=10,max=70。
以度量為依據的調整決策是在叢集層次進行。每一個叢集成員會監視自己的度量。事實上,伺服器的 CPU 與記憶體度量值大於伺服器 JVM 程序或伺服器主機。資料堆度量值只會從伺服器 JVM 程序取得。如果在受監視的度量中偵測到重大變更,會將該度量傳送給控制器分析。會累計所有叢集成員的度量,並計算每一項度量的叢集平均值。接著會將所算出的每一個度量值,與所定義的臨界值上限或下限做比較,來判斷是否要觸發調整決策。
橫向擴充決策是根據個別的度量來制定。會分析叢集所有受監視的度量,只要有度量超過原則 max 臨界值,就會觸發橫向擴充事件。橫向縮減決策是根據所有受監視的度量來制定。會分析每一個受監視度量的叢集平均值。 如果所有度量都低於其原則 min 臨界值,就會觸發橫向縮減事件。
一旦制定調整決策,調整控制器會選取調整目標。調整目標是執行伺服器停止(橫向縮減)或伺服器啟動(橫向擴充)動作的主機。在判斷擴充動作的目標時,會將主機層次的度量納入考量。若有任何主機層次的度量超過該度量的原則 max 臨界值,調整控制器會避開該主機,並選擇另一部主機來執行橫向擴充動作。
調整原則可以影響調整目標的選擇。如果原則指定 scalingPreference="horizontal",調整控制器會啟動具有最少作用中伺服器的合格主機上的伺服器,並停止具有最多作用中伺服器的主機上的伺服器。如果原則指定 scalingPreference="vertical",調整控制器會啟動具有最多作用中伺服器的合格主機上的伺服器,並停止具有最少作用中伺服器的主機上的伺服器。如果可能,調整控制器會嘗試將伺服器放在不同主機上的相同叢集中,而不考慮所選擇的 scalingPreference。
如需 scalingPolicy 度量的相關資訊,請參閱調整控制器。
<scalingDefinitions>
<scalingPolicy id="provisionPolicy">
<bind clusters="defaultStackGroup.deployMember"/>
<hostGroup tags="tag1 tag2"/>
</scalingPolicy>
</scalingDefinitions>
如需設定管理 meta 資料標籤的相關資訊,請參閱設定 Liberty 資源的管理 meta 資料。
程序
結果
現在已定義您的調整原則。