JobServers
構文
[Startup] JobServers=n
n は、0 から 2000 の範囲の整数です。既定値は 0 です。
説明
JobServers パラメータは、維持したい使用可能なジョブ・サーバの目標数と、起動時に作成されるジョブ・サーバの数の両方を設定します。ジョブ・サーバの合計数ではありません。使用可能なジョブ・サーバの数が目標数を下回ると、使用可能なジョブ・サーバの数を維持するために、さらに多くのジョブ・サーバが作成されます。
多数の JOB サーバを実行すると、大量のメモリとプロセスを消費しますが、InterSystems IRIS ではシステム・レベルでプロセスを起動して初期化する必要がないため、ジョブ起動プロセスを高速化できます。
^JOBSRV ルーチンを使用すると、ジョブ・サーバに関する情報 (ジョブ・サーバの構成や数など) を表示できます。
システムの動作
ジョブ・サーバが有効な場合、システムは 5 秒ごとに監視プロセスを実行し、使用可能なジョブ・サーバ数を確認します。使用可能なジョブ・サーバの数が目標数を下回ると、目標に達するまで、ジョブ・サーバが追加で作成されます。
監視プロセスでは、3 分ごとに、使用可能なジョブ・サーバの数が目標数を上回っているかどうかも確認します。上回っている場合、ジョブ・サーバを 1 つ停止します。ただし、実行中のジョブ・サーバの合計数が、JobServers パラメータで設定された数を下回ることはありません。
JobServers パラメータが 0 (ジョブ・サーバを無効化) に変更されると、監視プロセスは使用可能なすべてのジョブ・サーバを直ちに停止し、さらに使用されていたジョブ・サーバが使用可能になるとこれを停止します。
使用されていたジョブ・サーバがその作業を完了すると、これらは自動的に使用可能なプールに戻されます。
目標数の決定
システムは、効果的な目標数に基づいて、使用可能なジョブ・サーバの数を維持します。効果的な目標数は、パラメータ値か、ジョブ・サーバの合計数によって決定される動的な目標数 (以下の表を参照) の、いずれか小さい方によって決まります。例えば、JobServers=7 と設定した場合、効果的な目標数は、ジョブ・サーバの合計数が 20 未満であれば 5、20 以上であれば 7 となります。以下の例でこれを詳細に説明します。
ジョブ・サーバの合計数 | 動的な目標数 |
---|---|
1 – 4 | パラメータにより決定 |
5 – 19 | 5 |
20 – 99 | 10 |
100 以上 | 20 |
例
新しいプロセスが開始されるたびに、使用可能なジョブ・サーバが 1 つ使用されるため、システムは新しいジョブ・サーバを 1 つ作成します。
パラメータ | 動的な目標 | 効果的な目標 | 使用可能 | 使用中 | 合計 | |
---|---|---|---|---|---|---|
開始時 | 4 | 該当なし | 4 | 4 | 0 | 4 |
1 個のプロセス | 4 | 該当なし | 4 | 4 | 1 | 5 |
5 個のプロセス | 4 | 該当なし | 4 | 4 | 5 | 9 |
システムは、最初 12 個の使用可能なジョブ・サーバで開始されますが、効果的な目標は 5 個です。使用可能なジョブ・サーバの数が 5 個を下回ると、効果的な目標値を維持するようにジョブ・サーバが追加で作成されます。
15 個のジョブ・サーバが使用されている場合、ジョブ・サーバの合計数は 20 個になります (使用中が 15 個、使用可能が 5 個)。これにより、効果的な目標は 10 個に増加し、システムはさらに 5 個のジョブ・サーバを作成します。これでジョブ・サーバは合計 25 個 (使用中が 15 個、使用可能が 10 個) になります。
90 個のジョブ・サーバが使用されている場合、ジョブ・サーバの合計数は 100 個になります (使用中が 90 個、使用可能が 10 個)。これにより、動的な目標は 20 個に増加します。パラメータは動的な目標より小さいため、パラメータが効果的な目標になります。システムは、効果的な目標 12 個を満たすため、2 個だけ追加でジョブ・サーバを作成します。
パラメータ | 動的な目標 | 効果的な目標 | 使用可能 | 使用中 | 合計 | |
---|---|---|---|---|---|---|
開始時 | 12 | 5 | 5 | 12 | 0 | 12 |
10 個のプロセス | 12 | 5 | 5 | 5 | 10 | 15 |
15 個のプロセス | 12 | 5 → 10 | 5 → 10 | 5 → 10 | 15 | 20 → 25 |
30 個のプロセス | 12 | 10 | 10 | 10 | 30 | 40 |
90 個のプロセス | 12 | 10 → 20 | 10 → 12 | 10 → 12 | 90 | 100 → 102 |
100 個のプロセス | 12 | 20 | 12 | 12 | 100 | 112 |
システムは、最初 100 個の使用可能なジョブ・サーバで開始されますが、効果的な目標は 20 個です。使用可能なジョブ・サーバの数が (使用されて) 効果的な目標数まで減少すると、システムは使用可能な数を維持するために、新しいジョブ・サーバを作成し始めます。
パラメータ | 動的な目標 | 効果的な目標 | 使用可能 | 使用中 | 合計 | |
---|---|---|---|---|---|---|
開始時 | 100 | 20 | 20 | 100 | 0 | 100 |
50 個のプロセス | 100 | 20 | 20 | 50 | 50 | 100 |
80 個のプロセス | 100 | 20 | 20 | 20 | 80 | 100 |
90 個のプロセス | 100 | 20 | 20 | 20 | 90 | 110 |
このパラメータの変更
管理ポータルの [開始] ページ ([システム管理] > [構成] > [追加設定] > [開始]) で、[JobServers] の行の [編集] を選択します。JOB サーバの数を入力します。
管理ポータルを使用する代わりに、Config.StartupOpens in a new tab クラス (クラス・リファレンスを参照) で、またはテキスト・エディタで CPF を編集することによって ("アクティブな CPF の編集" を参照)、JobServers を変更できます。