SharePoint 2010 のサンドボックス ソリューションのリソース使用率制限

このトピックは、Microsoft SharePoint Foundation がサンドボックス ソリューションに対してかけるシステム リソース使用率についての制限事項を説明します。

最終更新日: 2015年3月9日

適用対象: SharePoint Foundation 2010

この記事の内容
SharePoint 2010 内のサンドボックス ソリューションでのリソース使用率制限の種類
計測されるリソース
重要なリソース使用率 API

SharePoint Online で使用可能

サンドボックス ソリューションは、3 種類のリソース使用率制限の対象となります。これらの制限は、(1) 制限が適用されるエンティティの種類と (2) 制限を超えるとペナルティが課されるエンティティの種類の 2 つに分けられます。ペナルティは、インフラストラクチャを監視している SharePoint Foundation ソリューションにより自動的に課されます。また、ファーム管理者は、理由を問わず、サーバーの全体管理アプリケーション内のあらゆるサンドボックス ソリューションを手動でブロックすることができます。

SharePoint 2010 内のサンドボックス ソリューションでのリソース使用率制限の種類

3 種類のリソース使用率制限を以下に示します。

  • **要求ごとに、要求に対してペナルティを課す:**サンドボックス ソリューションが完了するまでにかかる時間に、ハード制限をかけます。既定では、30 秒です。サンドボックス ソリューションが制限を越えた場合、要求を処理するアプリケーション ドメイン (セキュリティで保護されたワーカー プロセスは除く) は終了させられます。この制限は構成できますが、ユーザー設定コードを使用してオブジェクト モデルに対して行う場合のみです。オブジェクト モデルの関連する要素は、サンドボックス ソリューションがアクセスできないので、サンドボックス ソリューションは制限を変更できません。

  • 要求ごとに、プロセスに対してペナルティを課す: 要求に適用される、15 の追加のリソース制限をかけます。要求がこれらの 1 つを超えた場合は、そのプロセス (そして、制限を超えていないプロセスを含めて、実行中のすべてのサンドボックス ソリューション) が終了させられます。また、これらの制限は、オブジェクト モデルに対して SharePoint 管理シェルあるいはユーザー設定コードにより構成できます。

  • 日ごと/サイト コレクションごとに、サイト コレクションのサンドボックス ソリューションのセット全体にペナルティを課す: 各サイト コレクションは、日単位での、構成可能な最大の "リソース ポイント" の対象となります。これらのポイントは、サイト コレクションにインストールされたサンドボックス ソリューションによる 15 のリソース カテゴリ内のリソース使用を考慮して、Microsoft 独自のアルゴリズムに基づいて蓄積されます。サイト コレクションが、許可された最大のポイント (既定で 300 に設定) を超えた場合、サイト コレクション内のすべてのサンドボックス ソリューションが終了させられて、日付が変わるまで実行できません。サイト コレクション管理者は、サイト コレクションのソリューション ギャラリー内で、サイト コレクションのサンドボックス ソリューションによって使用されたその日の合計 (そして 14 日間の平均) のリソース ポイントを表示することができます。また、各ソリューションによって使用されたリソース ポイントも表示されます。管理者は、同じギャラリー内の任意のサンドボックス ソリューションを非アクティブにするか、削除することができます。ファーム管理者は、サイト コレクションごと、またはサーバーの全体管理アプリケーション内のサイト コレクションごとでの、許可される合計ポイントを構成することができます。各種類のリソースの、各単位に割り当てられたポイントの数は、オブジェクト モデルに対して、SharePoint 管理シェルまたはユーザー設定コードにより構成できます。

計測されるリソース

以下の表は、監視される 15 のシステム リソースを示します。

  • 最小しきい値列は、実行中の合計にまとめられる前に達する必要がある、リソースの既定の最小量を指定します。この列の 0 は、どれほど少なくても、一定量がまとめられたことを意味します。

  • 絶対制限列は、プロセスを即座に終了させる既定の量を示します。この列の一部のリソースでは、1 という値があることに注意してください。これは、リソースのインスタンスが 1 つであっても、プロセスを即座に終了させることを意味します。

  • ポイントごとのリソース列は、既定で、どれだけのリソースにより、日ごと/サイト コレクションごとの合計にポイントが追加されるかを示します。

リソース

解説

最小しきい値

絶対制限

ポイントごとのリソース

AbnormalProcessTerminationCount

この "リソース" は、その他の理由で終了させられたサンドボックス ソリューションに追加のペナルティを課す目的でのみ存在します。具体的には、日ごと/サイト コレクションごとの合計に 1 ポイントが追加されます。つまり、この "リソース" ペナルティは、以下のどちらかを表します。(1) その他の 1 つの測定の絶対制限が超過し、セキュリティで保護されたプロセスが即座に終了された。(2) 要求に時間がかかりすぎるという理由により、要求を処理しているアプリケーション ドメインが終了された (上記の "要求ごとに、要求に対してペナルティを課す" を参照)。したがって、この列の最小しきい値および絶対制限の列は、適用外となります。

0

1

1

CPUExecutionTime

(秒で測定)

このリソースの絶対制限は、上記の "要求ごとに、要求に対してペナルティを課す" 制限より高く設定されている限り、適用外となります。セキュリティで保護されたワーカー プロセスの中で実行中の、問題のないサンドボックス ソリューションを巻き込んで、そのセキュリティで保護されたワーカー プロセスが停止される事態になる前に、遅い要求を終了できるようにする目的で、管理者は、通常、この値を高くする必要があります。

0.1

60

200

CriticalExceptionCount

重大な例外には以下のものがあります。

  • ThreadAbortException

  • OutOfMemoryException

  • AccessViolationException

  • AppDomainUnloadedException

  • BadImageFormatException

  • TypeInitializationException

  • MissingMethodException

  • ExecutionEngineException

0

3

10

IdlePercentProcessorTime

この測定は、現在、どの要求も処理していないセキュリティで保護されたワーカー プロセスにのみ適用されます。このようなプロセスは、多くのプロセッサ時間を使用していないはずです。絶対制限列の 10 という値は、このようなプロセスがプロセッサ時間の 10 % 以上を使用する場合、過程が終了させられることを意味します。ポイントごとのリソース値は、使用されません。しかし、過程が終了させられるとき、AbnormalProcessTerminationCount が適用され、その日のリソース カウントにリソース ポイントが追加されます。

0

10

100

InvocationCount

0

100

100

PercentProcessorTime

0

100

85

ProcessCPUCycles

10,000,000,000

100,000,000,000

100,000,000,000

ProcessHandleCount

500

5000

10,000

ProcessIOBytes

0

100,000,000

10,000,000

ProcessThreadCount

10

200

10,000

ProcessVirtualBytes

100000000

4,000,000,000

1,000,000,000

SharePointDatabaseQueryCount

SharePoint コンテンツと構成データベースに対して実行されたクエリ。

0

100

400

SharePointDatabaseQueryTime

秒で測定

SharePoint コンテンツと構成データベースに対するクエリの実行にかかる時間。

0.1

60

20

UnhandledExceptionCount

0

3

50

UnresponsiveprocessCount

0

1

2

重要なリソース使用率 API

SharePoint Foundation オブジェクト モデルを使用して、これらの値を変更できます。以下は、これを行う目的で使用する重要な API です。

  • SPResourceMeasure クラスのオブジェクトが、リソース測定の 1 つを表します。このようなオブジェクトすべてが、構成データベース内に保持されます。このクラスは、最小しきい値、絶対制限、およびポイントごとのリソースのプロパティを持っています。また、このクラスは、SPPersistedObject から継承する Name プロパティを持っています。このクラスはシールされています。

  • SPUserCodeService.ResourceMeasures は、監視されているリソースの 1 つずつにつき、SPResourceMeasure オブジェクトのコレクションを保持します。

  • SPUserCodeService.WorkerProcessExecutionTimeout は、上記の "要求ごとに、要求に対してペナルティを課す" 制限で使用されるタイムアウト値を保持します。

名前あるいは GUID をインデックスとして使用することにより、特定のリソース測定への参照を取得できます。たとえば、以下のコードは、SharePointDatabaseQueryTime 測定の絶対制限を 30 秒に下げます。

SPUserCodeService.Local.ResourceMeasures["SharePointDatabaseQueryTime"].AbsoluteLimit = 30.0;
SPUserCodeService.Local.Update();

以下のコードは、"要求ごとに、要求に対してペナルティを課す" 制限の値を 40 秒に上げます。

SPUserCodeService.Local.WorkerProcessExecutionTimeout = 40;
SPUserCodeService.Local.Update();
重要重要

変更を有効にするには、実行中の Microsoft SharePoint Foundation Sandboxed Code Service を、それが実行されているすべてのサーバーで、再度、開始する必要があります。

関連項目

概念

サンドボックス ソリューションに対する制限

サンドボックス ソリューションで実装できるコンポーネント

その他の技術情報

Sandboxed Solutions Resource Center | SharePoint 2010 (英語)

SharePoint Developer Team Blog (英語)

SharePoint デベロッパー センター