データベース・サーバが許容するプロセッサ同時実行性の最大値を指定します。
{ dbsrv11 | dbeng11 } -gtc logical-processors-to-use ...
Linux、Solaris、Windows オペレーティング・システム (Intel 互換の x86 と x64 プラットフォームを実行するシステム、Windows Mobile を除く)
データベース・サーバを起動すると、検出された物理プロセッサと論理プロセッサの数がデータベース・サーバ・メッセージ・ウィンドウに表示されます。
物理プロセッサは、コンピュータの CPU であり、「パッケージ」または「ダイ」と呼ばれることもあります。物理プロセッサがハイパースレッドをサポートする場合や、「マルチプロセッサ」 (一般に「マルチコア・プロセッサ」と呼ばれます) として設定されている場合は、追加の論理プロセッサが存在します。オペレーティング・システムは、論理プロセッサ上でスレッドをスケジュールします。
-gtc オプションでは、データベース・サーバが使用する論理プロセッサの数を指定できます。このオプションを指定することで、サーバの起動時に作成されるデータベース・サーバ・スレッドの数を制限します。これは、データベース・サーバで同時に実行できるアクティブ・タスクの数を制限することになります。デフォルトでは、作成されるスレッドの数は (1 + ライセンスを受けているすべての物理プロセッサ上にある論理プロセッサの数) です。
デフォルトでは、ライセンスされた各物理プロセッサにおいて、すべての論理プロセッサ (コアまたはハイパースレッド) の同時使用が可能です。たとえば、1 つの CPU を搭載し、ハイパースレッドをサポートするシステムについて考えてみます。データベース・サーバは、デフォルトで、1 つの物理プロセッサ上で同時に実行する 2 つのスレッドを許可します。-gtc オプションが指定されている場合で、使用される論理プロセッサの数が、ライセンスされている物理プロセッサで利用できる総数よりも少なくなると、データベース・サーバはラウンド・ロビン方式に基づいて論理プロセッサを割り付けます。-gtc オプションに対して暗黙的に 1 を指定すると、クエリ内並列処理 (クエリの並列処理) は無効になります。クエリ内並列処理は、max_query_tasks オプションを使用して、明示的に制限したり、無条件に無効にしたりすることもできます。max_query_tasks オプション [データベース]を参照してください。
Windows ベースの SMP コンピュータを例に挙げて考えてみます。ここでは、システムが 4 プロセッサ構成で、各物理プロセッサにコアが 2 つある (合計 8 つの論理プロセッサがある) ことを前提としています。物理プロセッサは文字で、論理プロセッサ (この例では、コア) は数字でそれぞれ区別します。このシステムには 4 プロセッサ・ユニットとして A0、A1、B0、B1、C0、C1、D0、D1 が存在することになります。
シナリオ | ネットワーク・データベース・サーバの設定 |
---|---|
シングル CPU ライセンス、または -gt に 1 が指定されている |
スレッドは A0 または A1 で実行できます。 |
CPU のライセンスに制限がなく、-gtc に 5 が指定されている |
スレッドは A0、A1、B0、C0、D0 で実行できます。 |
データベース・サーバに 3 CPU ライセンスがあり、-gtc に 5 が指定されている |
スレッドは A0、A1、B0、B1、C0 で実行できます。 |
CPU のライセンスに制限がなく、-gtc に 1 が指定されている |
スレッドは A0 でのみ実行できます。 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |