要求調整システムの設定を変更する
最終更新日: 2011年3月3日
適用対象: SharePoint Foundation 2010
この記事の内容
設定の永続性
変更可能な項目と変更不可能な項目
SPHttpThrottleSettings のプロパティの変更
このトピックでは、Microsoft SharePoint Foundation で、パフォーマンス監視と HTTP 要求調整システムの設定をプログラムで変更する方法について説明します。
設定の永続性
SharePoint Foundation Web アプリケーションごとに、独自のパフォーマンス監視の設定と要求調整の設定があります。設定は、Web アプリケーションの HttpThrottleSettings プロパティの値である SPHttpThrottleSettings オブジェクトとして構成データベースに保持されます。
変更可能な項目と変更不可能な項目
システムの以下の側面は変更できません。
正常性スコアは、常に 0 ~ 10 の整数です。最低のスコアは最も適切な状態を示し、最高のスコアは最も不適切な状態を示します。
特定のモニターの正常性スコアは、監視されるサンプル カウンターの時間加重平均に基づきます。この加重アルゴリズムを変更することはできません (ただし、複数サンプルの使用を無効にする方法があります。次の箇条書きリストを参照してください)。
ワーカー プロセスには全体的な正常性スコアが与えられます。これは、Web アプリケーションの登録済みモニターのうち最低の正常性スコアに一致します。
ワーカー プロセスが調整モードに移行するのは、その正常性スコアが 10 の場合のみです。つまり、少なくとも 1 つのパフォーマンス モニターで正常性スコアが 10 になっている場合です。
ワーカー プロセスが第 2 段階の調整に移行するのは、その正常性スコアが 60 秒以上、10 になっている場合のみです。つまり、60 秒以上継続して、あるモニターまたは他のモニターのスコアが 10 になっている場合です。ただし、必ずしも特定のモニターが 10 の状態を継続する必要はありません。モニター A のスコアが 45 秒間、10 であり、それと重複する 45 秒の期間にモニター B のスコアが 10 である場合、60 秒の間に、1 つ以上のモニターが常にスコア 10 になっている 60 秒の範囲が存在する可能性があります。この場合、ワーカー プロセスは第 2 段階の調整に入ります。
システムの以下の側面はプログラムで変更できます。
Web アプリケーションで調整を有効にするかどうか。このトピックの後半の「SPHttpThrottleSettings のプロパティの変更」を参照してください。
監視されるカウンターをサンプリングする頻度。特定の Web アプリケーションによって監視されるすべてのカウンターは同じ頻度でサンプリングされる必要があります。このトピックの後半の「SPHttpThrottleSettings のプロパティの変更」を参照してください。
各カウンターの値の加重平均を計算するために使用する各カウンターのサンプル数。この値を 1 に設定すると、平均化が実質的に無効になります。特定の Web アプリケーションのすべてのモニターは、同じ数のサンプルを使用する必要があります。このトピックの後半の「SPHttpThrottleSettings のプロパティの変更」を参照してください。
監視される Windows Server 2008 カウンター。詳細については、「[方法] パフォーマンス カウンターの登録と登録解除」を参照してください。
ブロックされない要求の種類、ブロックされる要求の種類、および第 1 段階調整または第 2 段階調整のどちらで要求がブロックされるか。詳細については、「[方法] 要求分類子の作成および登録または登録解除を行う」を参照してください。
特定のモニターに関連付けられる正常性スコア計算機能。詳細については、「[方法] バケット スタイルの正常性スコア計算機能を作成、置換、および変更する」を参照してください。
スコアを特定のカウンター値 (または値の関数) に割り当てるために正常性スコア計算機能で使用されるバケットの境界 (値の部分範囲)。この点が適用されるのは、標準のバケット スタイルの正常性スコア計算機能のみです。詳細については、「[方法] バケット スタイルの正常性スコア計算機能を作成、置換、および変更する」を参照してください。
SPHttpThrottleSettings のプロパティの変更
要求調整をプログラムで有効または無効にすることに特別な問題はありません。加重平均の計算に使用するサンプル数の変更やカウンターをサンプリングする頻度の変更についても、特別な問題はありません。以下のコードは、コンソール アプリケーション プロジェクトの program.cs ファイルを示しています。Microsoft Visual Studio プロジェクトでは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI に配置されている Microsoft.SharePoint.dll への参照が必要です。以下のコードは、サンプルの取得頻度を既定の 5 秒から 10 秒に変更し、親 Web アプリケーションの調整監視を有効にして、サンプル数を既定の 12 から 5 に変更します。変更を構成データベースに保存するために、Update() が呼び出されています。
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.Utilities;
namespace Contoso.SharePoint.Utilities
{
class ThrottleSettingsChanger
{
static void Main(string[] args)
{
Uri webApplicationUri = new Uri("Http://localhost/");
SPWebApplication webApplication = SPWebApplication.Lookup(webApplicationUri);
SPHttpThrottleSettings throttleSettings = SPHttpThrottleSettings.GetHttpThrottleSettings(webApplication);
throttleSettings.RefreshInterval = 10000;
throttleSettings.PerformThrottle = true;
throttleSettings.NumberOfSamples = 5;
throttleSettings.Update();
}
}
}