ジョブサーバーレートの計算方法
機能のオフセットを制限と実際の値の差として定義してみます。
- value{i} - Max{i}, when value{i} > Max{i}
- 0, when Min{i} < value{i} < Max{i}
- Min{i} - value{i}, when value{i} < Min{i}
相対オフセットはオフセットを範囲で除して算出します:
rel_offset{i} = offset{i} / [ Max{i} - Min{i} ]
正の値になります。
サーバーのレートは、そのすべての相対オフセットの加重和に-100の係数を乗じて算出します:
rate = -100 Σ weight{i} x rel_offset{i}
この段階で、レートは制約なしの負の数です。0と100の間の数字を得るために、以下の式が使用されます:
normalized rate = 100 / [ 1 - rate / scale ]
上記で、scale = 2000です。
スケールは、不正な値に対する感受性を示す任意の数字です。正規化されたレートが100である場合は、サーバーが良好であることを意味します。正規化されたレートが100を下回る場合は、サーバーがあまり良好でないことを意味します。正規化されたレートが低くなるほど、サーバーの状態は悪いことになります。すべての機能値が予想範囲内である場合、レートは0で、正規化されたレートは100です。
必要とされるディスク容量が1GBと2GBの間で、実際のディスク容量が500MBであれば、相対オフセットは1/2です。重みが8なら、正規化されたレートは100/ [ 1 + 400/2000 ] = 83.33となります。
下図は、サーバーの空きディスク容量と2つの異なる重みに従ってレートがどう変化するかを示しています(その他すべてのサーバー機能が定義された範囲内であると仮定)。
サーバーレートは90秒ごとにアップデートされます。この秒数は、notification.conf.checking.frequencyCheckJobServerStateというパラメーターの値を設定することで変更できます。
Talend Administration Centerは、レートを付けたサーバーを降順にリスト表示したものです。レートの高いものから低いものへ1つずつチェックし、ジョブがデプロイされていたとしてどれがベストかを判定しています。