Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの起動とデータベースへの接続 » データベース・サーバの実行 » 一般的なオプション » SQL Anywhere でのスレッド

 

スレッド動作の制御

スレッドの動作は、主に 5 つの要素によって制御されます。これらは、サーバ・オプションによって管理されます。すべてのプラットフォームで、これらのオプションのすべてがサポートされるわけではありません。

  • マルチプログラミング・レベル (-gn サーバ・オプション)   -gn オプションは、サーバのマルチプログラミング・レベルを制御します。この値によって、同時にアクティブにできるタスクの最大数が決定されます。データベース要求は、それぞれ、少なくとも 1 つのタスクを使用します。クエリ内並列処理が関連する場合は、複数のタスクを使用することもあります。また、サーバは、内部的な管理処理を行うために臨時にタスクをスケジュールすることもあります。サーバ内にあるタスクの数がマルチプログラミング・レベルを超えると、未処理のタスクは、現在実行中のタスク (アクティブ・タスク) が完了するのを待機します。デフォルトでは、ネットワーク・データベース・サーバ用とパーソナル・データベース・サーバ用に最大で 20 のタスクを同時に実行できます。-gn サーバ・オプションデータベース・サーバのマルチプログラミング・レベルの設定を参照してください。

  • 内部実行スレッドあたりのスタック・サイズ (-gss サーバ・オプション)   -gss オプションを使用して、サーバの内部実行スレッドあたりのスタック・サイズを設定できます。-gss オプションによって、データベース・サーバのメモリ使用量を節約できます。これは、メモリが限られている環境で役立ちます。このオプションをサポートする Windows オペレーティング・システムは、Windows Mobile だけです。-gss サーバ・オプションを参照してください。

  • プロセッサの数 (-gt サーバ・オプション)   複数のプロセッサがある場合は、-gt オプションを指定して、スレッドが使用できるプロセッサの数を制御できます。-gt サーバ・オプションを参照してください。

  • プロセッサの同時実行性 (-gtc サーバ・オプション)   CPU 上で同時に実行できるスレッド数の上限を指定できます。デフォルトでは、データベース・サーバは、ライセンスされた各物理プロセッサにおいて、すべてのハイパースレッドとコアで実行されます。-gtc サーバ・オプションを参照してください。

スレッド処理に関するヒント
  • -gn を大きくすると、スレッドのデッドロックが発生する可能性を低減できます。-gn サーバ・オプションを参照してください。

  • -gt を 1 に設定すると、同時実行性の問題を回避するのに役立つことがあります。-gt サーバ・オプションを参照してください。

  • Windows の場合、パフォーマンス・モニタで [要求 : アクティブ] や [要求 : 未スケジュール] の値を確認すると、使用する適切な -gn の値を判断できます。アクティブな要求の数が常に -gn よりも少ない場合は、-gn を減らすことができます。要求の合計数 (アクティブ + 未スケジュール) が頻繁に -gn を上回る場合は、-gn の値を増やすことができます。パフォーマンス・モニタの統計値-gn サーバ・オプションを参照してください。

プロセッサの使用とスレッド処理の例

次の例は、-gt と -gtc の設定に基づいて、データベース・サーバが CPU を選択する方法を示します。この例では、システムが 4 プロセッサ構成で、各プロセッサにコアが 2 つあることを前提としています。物理プロセッサは文字で、コアは数字でそれぞれ区別します。したがって、このシステムにはプロセッサ・ユニットとして A0、A1、B0、B1、C0、C1、D0、D1 が存在することになります。

シナリオ ネットワーク・データベース・サーバの設定
シングル CPU ライセンス、または -gt に 1 が指定されている
  • -gt 1
  • -gtc 2
  • -gn 20

スレッドは A0 または A1 で実行できます。

CPU のライセンスに制限がなく、-gtc に 5 が指定されている
  • -gt 4
  • -gtc 5
  • -gn 20

スレッドは A0、A1、B0、C0、D0 で実行できます。

データベース・サーバに 3 CPU ライセンスがあり、-gtc に 5 が指定されている
  • -gt 3
  • -gtc 5
  • -gn 20

スレッドは A0、A1、B0、B1、C0 で実行できます。

CPU のライセンスに制限がなく、-gtc に 1 が指定されている
  • -gt 4
  • -gtc 1
  • -gn 20

スレッドは A0 でのみ実行できます。