スケジューラの資源選択の最適化
スケジューラの資源要求キューの処理パフォーマンスを向上させるために、このトピックで説明されている資源選択ルールを使用できます。
- 初期ロード
- 最初の n ロード
- 最小段取(1 番目のロード)
- 最小段取(最初の n ロード)
- 閾値
上記のルールは、スケジューラの要求キュー内で考えられる負荷の要求の一部分のみを考慮するので、より高速です。
上記のルールを使用することにより、予期しない動作が生じる場合があります。
たとえば、資源が解除され、その結果として選択ルールを使用した要求キューのソートが生じ、割付の失敗により資源がアイドルのままになる場合があります。この状況では、次のいずれかの処理が生じるまで、資源はアイドルのままです:
- 負荷がその資源を必要とする作業を処理します。
- 資源は、シフト外に移動した後、シフト内に戻ります。
別の負荷が資源を必要とせず、資源がシフトしないので、スケジューラ実行の以降で資源はアイドルのままです。これに関連して問題が発生します。選択ルール「最初のロード」および「最初の n ロード」を使用するたびに、要求キューの先頭の負荷要求がキュー内の以降の負荷要求を「ブロック」する可能性があります。たとえば、次の場合にこの問題が発生します。
- 「最初のロード」が資源 RES1 の選択ルールです。
- RES1 要求キュー内の最初の負荷が資源 RES1 および RES2 を必要とします。
- RES1 は解除されていますが、RES2 は解除されていません。
システムが待機中の負荷に RES2 を割付けることが可能になるか、別の負荷が RES1 を必要とする作業を処理するか、または RES1 がシフト外に移動した後シフト内に戻るまで、資源 RES1 はアイドルのままです。