SCDPM により MOSS ファームの保護を行っている環境においてWFE サーバーでの CPU の高負荷状態が長時間継続する

現象
System Center Data Protection Manager (以下 DPM) を使用してMicrosoft Office Sharepoint Server (MOSS) ファームの保護を実施している環境で、カタログ化実行時にCPU の高負荷状態が長時間継続することがあります。

以下のような特徴があります。

- Web Front-end (WFE) サーバーにおいて、カタログ化の作業に伴って発生します。カタログ化は、毎晩、深夜に自動実行されます。

- WSSCmdletsWrapper プロセスの CPU 使用率が高い状態が長時間継続します。一時的な高負荷ではなく、プロセスの強制停止を行うまでの間、低下の傾向がありません。

- 発生率としては、一年に一回程度発生する事例の報告があります。

- DPM 2007、 DPM 2010、 System Center 2012 DPM において発生する可能性があります。
原因
DPM は Sharepoint データベースのカタログ化に際して WSSCmdletsWrapper プロセスより Sharepoint API をコールしますが、この Sharepoint API の中では .NET ライブラリの Dictionary ジェネリック クラスを利用し、情報の格納や検索を行っています。

Dictionary は処理の高速化の観点から、複数スレッドからの参照が可能となっていますが、書き込み処理が伴う場合には排他制御することが必要です。

しかしながら、Sharepoint API 内からは、排他処理は行っていないため、複数スレッドにてこのようなSharepoint API をコールすると問題が発生します。

DPM の WSSCmdletsWrapper プロセスは、Sharepoint ファームの SSP の数に比例したスレッドを作成し並行して実行するため、タイミングに依存する非常に稀な事象ではあるものの、処理が競合した場合には、当該事象が発生します。
解決方法
事象が発生した場合、WFE サーバーにて WSSCmdletsWrapper プロセスを手動で停止することで解消します。

回避策
問題の影響度を最小限にするため、監視アプリケーションを使用して、WSSCmdletsWrapper プロセスの CPU 使用率が長期にわたって高い状態のままとなることのないよう監視することを検討して下さい。 

なお、WSSCmdletsWrapper を処理途中で停止させることでカタログ化が失敗しますので、バックアップした Sharepoint ファームのアイテム単位の回復は、次回のカタログ化成功時までの間、出来なくなります。(ファーム単位、コンテンツ DB 単位の回復は可能ですので、データの消失はありません。)

WSSCmdletsWrapper は次回のカタログ化の際に自動的に開始されますが、スケジュール前にカタログ化を手動で実行することもできます。
手動でカタログ化を実行する場合には、下記の技術情報を参照の上、DPM 管理シェルより DPM コマンドレットを使用して実行して下さい。

DPM Cataloging to Recover SharePoint Items
http://technet.microsoft.com/ja-jp/library/ff634233.aspx


また、当該事象により他のプロセスの動作に影響が発生している場合には、WSSCmdletsWrapper プロセスのCPU 優先度を予め下げておくことを検討して下さい。

WSSCmdletsWrapper プロセスの CPU 優先度を下げることで、その他のプロセスの動作により優先的に作業をさせることができ、CPU 負荷による悪影響が緩和されることが期待できます。

WSSCmdletsWrapper プロセスは処理が行われていない時間帯では停止していますので、カタログ化の実行時刻直後の、確実に WSSCmdletsWrapper プロセスが起動しているタイミングにタスク スケジューラーで CPU 優先度を下げるスクリプトをスケジュールするような方法で実施して下さい。

CPU 優先度を下げるスクリプトの例は以下の情報を参照してください。

スクリプトを使用してプロセスの優先度を下げる方法はありますか
http://gallery.technet.microsoft.com/scriptcenter/3bf41bee-f74a-4fc0-a2fb-f17f6b76bd62
状況
詳細
マイクロソフトは、本事象を弊社製品の問題であると認識しております。

Dictionary ジェネリック クラスの使用時に、高 CPU 負荷となる事象について、詳細は以下情報を参照してください。

High CPU in .NET app using a static Generic.Dictionary
http://blogs.msdn.com/b/tess/archive/2009/12/21/high-cpu-in-net-app-using-a-static-generic-dictionary.aspx


Dictionary ジェネリック クラスについては、以下の技術情報を参照してください。

Dictionary ジェネリック クラス
http://msdn.microsoft.com/ja-jp/library/xfhwa508(v=vs.80).aspx
関連情報
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2863406 - 最終更新日: 09/29/2016 10:22:00 - リビジョン: 2.0

Microsoft System Center 2012 Data Protection Manager, Microsoft System Center Data Protection Manager 2010, Microsoft System Center Data Protection Manager 2007 Service Pack 1

  • KB2863406
フィードバック