Project Server キュー サービスのジョブ処理用スレッドの最大数を構成する

 

トピックの最終更新日: 2015-03-09

Microsoft Office Project Server 2007 キュー サービスを使用して、キューの種類ごとに処理用スレッドの最大数を構成できます。

Project Web Access サーバー設定の [キューの設定] ページには、既定値が 4 (キューの種類ごとに) の [ジョブ処理用スレッドの最大数] 設定があります。これらの値を調整するには多くの考慮事項があります。ジョブ処理用スレッドが多すぎると、アプリケーション サーバーのパフォーマンスに悪影響を及ぼし、タイムアウトエラーおよびメモリ例外エラーが発生する可能性があります。たとえば、月末期に増加が予想されるタイムシートの提出およびプロジェクトの更新を処理するために、管理者がタイムシートキューとプロジェクト キューの両方でジョブ処理用スレッドの最大数を 4 から 10 に増加しようとします。慎重に検討しないと、このような増加がパフォーマンスに悪影響を及ぼす可能性があります。

キューは、サーバーが過負荷になる可能性のあるピークが分散されるように、処理レートを制限するように設計されています。プロジェクト管理用語ではサーバーの "平準化" と呼び、サーバーの処理量が過剰にならないようにする機能です。

キューのマルチスレッド化

キューはマルチスレッド化されるため、以下を実行できます。

  • ジョブの迅速な処理

  • ジョブで問題が発生したときにジョブの処理の完全な停止の回避

次の表は、キューがシングルスレッド キューまたはマルチスレッド キューでジョブを処理する順序を示します。この例では、3 つのプロジェクトが次の順序で保存および公開されます。

  1. プロジェクト 1 が保存され、公開されます。

  2. プロジェクト 2 が保存され、公開されます。

  3. プロジェクト 3 が保存されます。

  4. プロジェクト 2 が開かれ、編集、保存、および再公開されます。

次の表は、キューがシングルスレッド環境でジョブを処理する方法を示します。列見出し T1 ~ T9 は時間セグメントを示します。すべての操作が 9 番目の時間セグメントの最後に完了します。同一のプロジェクト 2 公開ジョブが後で発生することをキューが検出したため、最適化のために最初のプロジェクト 2 公開ジョブがスキップされます。また、プロジェクト 1 およびプロジェクト 2 のレポート ジョブは優先度が低いため、これらも後で処理されます。

スレッド T1 T2 T3 T4 T5 T6 T7 T8 T9

[スレッド 1]

プロジェクト 1: 保存

プロジェクト 1: 公開

プロジェクト 2: 保存

プロジェクト 2: 公開 (スキップ)

プロジェクト 3: 保存

プロジェクト 2: 保存

プロジェクト 2: 公開

プロジェクト 1: レポート

プロジェクト 2: レポート

次の表は、キューがマルチスレッド環境 (この例では、3 スレッド) でジョブを処理する方法を示します。上記の例と同じ操作を処理しようとする場合、半分以上の時間がかかります。この環境では、相関ジョブ (たとえば、プロジェクト 1 保存と公開に関連するすべてのジョブ) をすべて同じスレッドで処理できることに注意してください。ジョブの関連付けに失敗した場合、同じ関連付けでの他のジョブの処理は禁止されますが、他のスレッドの他のジョブには影響を与えません。

スレッド T1 T2 T3 T4 T5 T6 T7 T8 T9

[スレッド 1]

プロジェクト 1: 保存

プロジェクト 1: 公開

プロジェクト 1: 保存

プロジェクト 1: レポート

[スレッド 2]

プロジェクト 2: 保存

プロジェクト 2: 保存

プロジェクト 2: 公開

プロジェクト 2: レポート

[スレッド 3]

プロジェクト 3: 保存

推奨設定

開始点として、使用可能なプロセッサ (またはコア) の数に基づいて処理用スレッドの最大数を設定することをお勧めします。たとえば、Project Server アプリケーションサーバーが単一のデュアルコア プロセッサを使用している場合、キューごとに 2 つのスレッド設定の構成が適切な開始点になります。アプリケーションサーバーが 4 つのデュアルコア プロセッサを使用している場合、キューごとに 8 つのスレッドを使用できます。トランザクションの量だけではなく、トランザクションの平均サイズも考慮して (たとえば、10 行のプロジェクトと 1000 行のプロジェクトを公開する場合) これらの設定を調整します。

また、ファームのトポロジおよびファームで実行しているその他のアプリケーションを考慮する必要もあります。たとえば、アプリケーションサーバーがフロントエンド Web サーバーとしても機能している場合、または、検索あるいはその他のプロセッサを大量に消費するアクティビティを実行している場合、それに応じて設定を調整します。さらに、パフォーマンス カウンタ、アプリケーション ログ、および ULS ログを監視して、通常のサーバー負荷で動作するキューを微調整できます。