TECHNOLOGY

FAQ (よくある質問)

対象バージョン : 8.0.x-9.0.x
対象OS : Windows , Linux

QUESTION ( SQ0702070 )

スレッドを追加した場合のオーバヘッドは?

-gn サーバ・オプションを指定し、ネットワーク・サーバに対してデフォルトの 20 よりも多くのスレッドを許可することを検討しています。
スレッドをもう 1 つプールに追加した場合のオーバヘッドは何ですか ? 
また、非常に多くのスレッドを追加した場合のマイナス面は何ですか ?

ANSWER

-gn の増加によって追加される各スレッド (ワーカーとも呼ばれる) は、サーバ内の 1MB のアドレス空間と、ブックキーピング用の数バイトを余分に使用します。
この追加の 1MB のアドレス空間により、データベース・キャッシュに利用できるアドレス空間は同じ量だけ減少します。

たとえば、-gn 999 を指定した場合、データベース・サーバは (ほとんどの Windows コンピュータで一般に利用できる 2GB の内) 999MB のアドレス空間を確保します。
他のプラットフォームでは、-gss オプションによって予約スタック・サイズを設定できます。
デフォルトでは、64 ビット UNIX プラットフォームでは 1MB、32 ビット UNIX プラットフォームでは 512KB、Netware では 128KB が確保されます。

通常は、スレッド・デッドロックが確認された場合にのみ、-gn を大きくしてください。
-gn を大きくすると、パフォーマンスが向上する可能性がありますが、これは作業負荷に依存します。
特に、UnschReq サーバ・プロパティによって示されるように、スレッドに割り当てられていない要求の数がゼロに近い場合は、-gn を大きくしてもパフォーマンスが向上しない可能性があります。

UnschReq プロパティの値を取得するには、以下のクエリを実行します。
   SELECT property ( ‘UnschReq’ )

-gn をあまりに大きな値にすると、キャッシュ・プレッシャは増加し、他のさまざまなリソースの競合も増加するため、パフォーマンスに悪影響が及ぶ可能性があります。
さまざまな -gn 値を使ってアプリケーションをテストし、アプリケーションにとって最適な値を決定してください。