コンテンツエリア開始

Function documentation 負荷分散 Locate the document in its SAP Library structure

用途

データベースシステムのタスクが、利用可能なユーザカーネルスレッドにどのように配分されるかには、オペレーティングシステムは影響を及ぼしません。したがって、たとえば、あるユーザカーネルスレッドによって 1 つのプロセッサの使用率が 100% に達し、その一方でそのコンピュータの他の 3 つのプロセッサがまったく使用されていない場合でも、オペレーティングシステムが介入することはできません。

ユーザカーネルスレッド内では、各タスクは連携して動作します。つまり、それぞれが保留になるときと、次の待機中タスクが引き継ぐときが、タスクによって決定されます (タスク切替を参照)。このような動作によって、1 つのタスクが、同じユーザカーネルスレッド内の他のすべてのタスクをブロックする可能性があります。

ユーザカーネルスレッドへのタスクの配分を最適にするために、データベースシステムでは内部負荷分散が実行されます。このために、データベースシステムではリソースが (特にマルチプロセッサを搭載したコンピュータの場合) よりも適切に配分され、個々のユーザに対する応答時間が短くなります。

Note

並列で使用される最大数のプロセッサを設定するには、MAXCPU 共通データベースパラメータを使用します。

アクティビティ

負荷分散では、各タスクはタイマ (特別スレッド) によって個々のユーザカーネルスレッドに配分されます。タイマは、一定間隔で、個々のタスクがユーザカーネルスレッド内で待機している時間の長さを分析し (タスクステータスの概要を参照)、それぞれのユーザカーネルスレッドについてこの待機時間を合計します。

あるユーザカーネルスレッドでの待機時間の合計が、他に比べて非常に長い場合は、1 つ目のユーザカーネルスレッド内でもっとも長く待機しているタスクが、タイマによって 2 つ目のユーザカーネルスレッドに移されます。

負荷分散を有効化するには、LOAD_BALANCING_CHK 特殊データベースパラメータを、Null 値よりも大きい値に設定します。

ユーザカーネルスレッド UKT1 にはタスク T1T2T3 が含まれ、UKT2 にはタスク T4 が含まれています。T1 が長いループに入っているのに対し、T2 および T3 は待機中です。

UKT1 での待機時間の合計は 210 ms ですが、UKT 2 ではわずか 10 ms です。したがって、UKT1 でもっとも待機時間の長い T2 UKT2 に移されます。

This graphic is explained in the accompanying text

参照:

プロセス構造

 

 

コンテンツエリア終了