発行ポータルのベスト プラクティス
この記事は、Microsoft Office SharePoint Server 2007 のベスト プラクティスに関する一連の記事の 1 つです。この記事では、Office SharePoint Server 2007 に基づくポータル発行の一般的な特徴とベスト プラクティスについて説明します。シリーズの他の記事については、「ベスト プラクティス」を参照してください。Office SharePoint Server 2007 のベスト プラクティスに関するその他の情報とリソースについては、「Best Practices Resource Center (英語)」(https://go.microsoft.com/fwlink/?linkid=125981&clcid=0x411) を参照してください。
ポータル環境の発行には、一般に、次のような特徴があります。
セキュリティ。インターネットに接続したポータル環境では、通常、ほとんどのユーザーに匿名認証が許可されます。メンバシップ サイトおよびイントラネット ポータルでは、さらに多様な認証および承認環境が使用されます。
ユーザー操作。サイトでのユーザー操作はほとんどが読み取りです。
キャッシュ ヒット率。読み取り専用コンテンツの場合、キャッシュ ヒット率は約 99% であると予想されます。
1. 少なくとも 3 つのフロントエンド Web サーバーを展開する
Office SharePoint Server 2007 のパフォーマンスは、フロントエンド Web サーバーの数が n+1 のときに最善になります。n は、容量計画によって決定したフロントエンド Web サーバーの数です。n+1 台のサーバーを実行することで、1 台のサーバーをネットワーク負荷分散から外し、サービスの可用性に影響を与えずにサーバーをリサイクルできます。最低でも 3 台の Web サーバーを使用する必要があります。詳細については、「冗長性を計画する (Office SharePoint Server)」を参照してください。
2. クエリ駆動の Web パーツを効率化する
リストを照会する Web パーツは、非常に大量のリソースを必要とする場合があります。データをロールアップする Web パーツが実行する各操作の範囲を把握します。
コンテンツ クエリ Web パーツのようなクエリ駆動の Web パーツを使用するときは、次のようにします。
可能な限り少ないリストから選択します。必要なリストのみから選択します。
コンテンツ クエリ Web パーツで最初に使用する列に、インデックスを作成します。詳細については、「パフォーマンスと容量の計画に影響を与えるその他の要因 (Office SharePoint Server)」の「Content Query Web Part」を参照してください。
複数のサイトまたはサイト コレクションに分散している大量のデータを照会するには、SharePoint Search を使用します。SPQuery オブジェクトよりこの種のクエリの方がはるかに効率的です。
次の記事で説明されている大きなリストに関するガイダンスに従って、クエリを作成します。
3. リストおよびデータベースが推奨される制限に従っていることを確認して、クエリのパフォーマンスを最適化する
リストおよびデータベースに対して推奨される制限に従って、クエリのパフォーマンスを最適化します。リストおよびデータベースの制限を超えると、Office SharePoint Server 2007 の機能や動作に直接的な影響があります。具体的な制限については、「ソフトウェア境界を計画する (Office SharePoint Server)」および「エンタープライズ コンテンツ ストレージを計画する」を参照してください。
ポータルを発行する場合は、1 サイトあたり 2,000 ページの制限以下に抑えることが特に重要です。
4. オーサリング環境と発行環境を分離する
必要な容量が正確に把握されて管理されている環境では、発行とオーサリングの両方に単一のファームを使用してもかまいません。必要な容量が正確にわかっていず、発行プロセスが厳密に管理されていない場合は、オーサリングと発行を分離することをお勧めします。これは、データベースの内容に対するアクセスの種類と使用パターンが類似している場合に、Office SharePoint Server 2007 のパフォーマンスが最高になるためです。主として読み取り専用の内容 (発行) と読み取り/書き込みの内容 (オーサリング) を異なるサイト コレクションに分離すると、有効な場合があります。
最善の理解とパフォーマンス向上のためには、サイト、Web アプリケーション、またはデータベースのレベルではなく、サイト コレクションのレベルに最初に注目することをお勧めします。サイト コレクションのパフォーマンスを向上させるには、複数の方法があります。監視結果に基づいて、環境に最も適した方法を選択してください。
サイト コレクションごとに異なる IIS Web アプリケーションを使用します。
Web サーバーの負荷が非常に大きい場合は、この方法を使用します。この方法を使用すると、異なるプロセスが同時にデータにアクセスでき、ファームが提供できる 1 秒あたりの要求数が増加します。それでもまだ Web サーバーの負荷が高い場合は、新しい Web サーバーの追加または複数のファームへの分割を検討します。
異なるサイト コレクションを異なるコンテンツ データベースに配置します。
データベースの負荷が大きい場合は、この方法を使用します。この方法を使用すると、SQL Server や SharePoint の操作で、I/O の並列処理および同時実行の向上を実現できる可能性があります。さらに負荷を分離するには、各コンテンツ データベースを、SQL Server の異なるインスタンスまたは異なる SQL Server クラスタでホストすることもできます。
5. ステージング環境をオーサリング環境から分離する
稼働ファーム内にステージング環境を作成し、コンテンツ展開によって意図したコンテンツが展開されること、および権限が正しく機能することをテストします。また、ステージング環境を別に用意すると、オーサリング環境に影響を与えることなく、変更を 1 つの環境にロックできます。
6. 最新の更新がインストールされていることを確認する
最新の修正プログラム、更新、サービス パックを適用して、最新の状態を維持することが重要です。これらの更新には、製品の重要な拡張および改善が含まれます。ただし、実稼働環境に更新を適用する前に、実稼働前環境で更新を詳細にテストする必要があります。更新を展開するときは、推奨される手順に従ってください。これには次のことが含まれます。
Windows Update を有効にして更新プログラムを自動的にダウンロードします。ただし、インストールは自動的に行いません。
オフピーク時に更新プログラムをインストールするように、時間をスケジュールします。
可用性を高めるため、更新処理時にサービスを停止するサーバーは、一度につき 1 台にします。
BIOS (サーバー コンピュータ、コントローラ、およびディスク)、Windows オペレーティング システム、Windows SharePoint Services 3.0 および Office SharePoint Server 2007、SQL Server に修正プログラムが適用されていることを確認します。
詳細については、「Understanding and deploying hotfixes, public updates, and service packs (英語)」(https://go.microsoft.com/fwlink/?linkid=123927&clcid=0x411) のプレゼンテーションおよび「Updates Resource Center for SharePoint Products and Technologies (英語)」(https://go.microsoft.com/fwlink/?linkid=106182&clcid=0x411) を参照してください。
7. 展開先サイトを直接編集しない
コンテンツの変更を急いで展開する必要がある場合でも、展開先のサイトを直接編集しないでください。直接編集すると、次にコンテンツを展開したときに、上書きされてしまいます。サイトを素早く更新するには、簡易展開ジョブを使用してください。詳細については、「簡易展開ジョブを管理する」を参照してください。
8. ピーク時にはオーサリング環境で管理タスクおよび一括操作を行わないようにする
ピーク時には管理タスクおよび一括操作を行わないようにします。これには、リスト、サイト、サイト コレクションの削除、または新しいコンテンツ タイプや列の作成が含まれます。詳細については、「ホワイト ペーパー : Office SharePoint® Server 2007 で大きなリストを操作する」を参照してください。
9. キャッシュを使用する
キャッシュは、発行ポータルに対して大きなメリットになる場合があります。異なる種類のキャッシュを適切に使用してください。キャッシュを正しく使用すると、スループットとユーザー応答時間が大きく向上する可能性があります。
詳細については、「Office SharePoint Server 2007 のキャッシュ」および「WAN 環境用に Office SharePoint Server を最適化する」の「Optimizing caching for WAN environments」を参照してください。
ディスク ベースのキャッシュ。ディスク ベース キャッシュでは、画像ファイル、サウンド ファイル、動画ファイル、javascript (.js) ファイルなど、バイナリ ラージ オブジェクト (BLOB) のキャッシュが制御されます。BLOB キャッシュを使用すると、BLOB は、各 Web サーバーからの最初の要求でデータベースから取得され、アイテムによって要求される有効期限が切れるまで、ファイル システムのフォルダに格納されます。BLOB キャッシュを構成するには、キャッシュを使用する Web アプリケーションの Web.config ファイルを使用します。 詳細については、「バイナリ ラージ オブジェクトのディスクベースのキャッシュ」(https://go.microsoft.com/fwlink/?linkid=123947&clcid=0x411) を参照してください。
出力キャッシュ。Office SharePoint Server 2007 では、ASP.NET に備わる出力キャッシュ テクノロジを利用して、発行ポータルにページ コンテンツをいつどのように提供するかを管理します。出力キャッシュを正しく使用することで、スループットを大きく改善し、ユーザー応答時間を大幅に短縮できます。ページはメモリ内で 1 回だけ作成されて、メモリに保持されます。
パフォーマンスを向上させるには、使用するキャッシュ プロファイルを可能な限り少なくしてください。詳細については、「Office SharePoint Server 2007 のキャッシュ」の「Output caching」および「出力キャッシュとキャッシュ プロファイル」(https://go.microsoft.com/fwlink/?linkid=121543&clcid=0x411) を参照してください。
オブジェクト キャッシュ。Office SharePoint Server 2007 は、ページがレンダリングされるたびにデータベースからフィールド データを取得する必要性を減らすために、特定のアイテムのキャッシュをサポートします。このキャッシュ システムでは、ページ上の Web パーツのデータ以外の、ページ上にあるフィールド データを完全にキャッシュできます。オブジェクト キャッシュのサイズは、既定ではサイト コレクションあたり 100 MB に設定されていますが、各サイト コレクションの設定値は Web サイトの特性に合わせて変更できます。
実稼働環境では、すべての種類のオブジェクト キャッシュを常にオンにすることをお勧めします。詳細については、「Office SharePoint Server 2007 のキャッシュ」の「オブジェクト キャッシュの調整」を参照してください。
サードパーティのツール -- キャッシュ デバイス。地理的に分散した環境では、Office SharePoint Server 2007 と共にサードパーティのキャッシュ デバイスまたはコンテンツ配信ネットワーク (CDN) システムを使用して、コンテンツをユーザーの近くに移動し、ラウンドトリップを防ぐことを検討します。詳細については、「WAN 環境用に Office SharePoint Server を最適化する」の「WAN accelerators and other third-party tools」を参照してください。
10. 推奨ハードウェアを使用する適切に構成されたインフラストラクチャで開始する
「インターネット環境のパフォーマンスと容量の要件を予測する (Office SharePoint Server)」の「推奨ハードウェア」の推奨事項に従います。このシナリオでは特に、Web サーバーの適切なサイズの決定に注目します。それぞれが 4 つのデュアル コア プロセッサと 16 GB の RAM を備えた 64 ビット コンピュータで、64 ビットの Office SharePoint Server 2007 を実行することをお勧めします。
11. 可用性を向上させるためにアプリケーション プールのリサイクルを設定する
Office SharePoint Server 2007 では、アプリケーション プールを定期的にリサイクルする必要があります。以下の推奨事項に従って、アプリケーション プールのプロセスをリサイクルする必要がある場合でも、サイトの稼働状態を維持してください。
異なる Web サーバー (64 ビットと 32 ビット) ごとに、異なる時間にアプリケーション プールをリサイクルします。ファーム内に複数の Web サーバーがある場合、アプリケーション プールが、異なる Web サーバーで異なる時間にリサイクルするように設定されていることを確認します。
IIS Web サイトごとに時間をずらしてアプリケーション プールをリサイクルします (64 ビットおよび 32 ビット)。Web サーバーでのピークを避けるため、IIS Web サイトごとにリサイクルの時間をずらします。特定の Web サーバーの複数のアプリケーション プールを同時にリサイクルする必要がある場合は、その Web サーバーをロード バランサから一時的に外して、ユーザーの操作性が低下するのを防ぎます。
リサイクルのメモリの使用状況を検討します (32 ビット)。アプリケーション プールのリサイクルを計画するときは、各アプリケーション プールが使用するメモリの量を検討し、使用されるメモリの量に基づいて頻度を変更します。通常はメモリ リソースの使用量が少ないアプリケーション プールは、メモリを多く使用するアプリケーション プールほど頻繁にリサイクルを行う必要はありません。推奨される設定を以下に示しますが、インストールの使用方法および使用する機能により値は異なります。
仮想メモリベースのリサイクルが 1,700 MB で行われるように構成します。
メモリ使用のリサイクルが 1,000 MB で行われるように構成します。
大きなファイルのアップロードなど、長時間実行する必要のあるユーザー要求を完了できるように、シャットダウン時間制限を少なくとも 300 秒に設定します。
1 日のある時間に大きな負荷が定期的に発生する環境では、時間ベースのリサイクルを使用します。スケジュールするリサイクルを、ピーク トラフィックが始まる約 30 分前に設定します。
詳細については、次のリソースを参照してください。
「Recommendations for SharePoint Application Pool Settings (英語)」(https://go.microsoft.com/fwlink/?linkid=123977&clcid=0x411)
「Overlapped recycling and SharePoint memory-based recycling (英語)」(https://go.microsoft.com/fwlink/?linkid=125985&clcid=0x411)
「ダウンロード可能なブック : 複数サーバー環境で Microsoft Office SharePoint Server 2007 の Service Pack 1 を計画、展開する」(https://technet.microsoft.com/ja-jp/library/cc262996.aspx) の「32 ビット ワーカー プロセスのリサイクルを監視および管理する」
12. 主要なカウンタを監視してパフォーマンスを管理する
監視する具体的なカウンタの推奨事項については、「Good List of Performance Counters (英語)」(https://go.microsoft.com/fwlink/?linkid=123925&clcid=0x411) を参照してください。
スループット。サーバー ファームが 1 秒間に処理できる要求の数を追跡して、予想されるユーザー応答時間の目標を満たしていることを確認します。
同時使用ユーザー数。同時使用ユーザーの数とファームのパフォーマンスの相関関係を追跡します。
時間の経過に伴うデータの増大とサイトの成長。データベースとサイトが拡大する速さを追跡し、現在のインフラストラクチャでニーズを満たすことができる期間を予測します。成長に備えて、ディスク全体の空き領域を 25% 以上のレベルに保つことをお勧めします。RAID アレイにディスクを追加したり、記憶域の割り当てを増やしたりすることで成長を管理している場合は、ディスク サイズをよく監視して、領域が不足するのを防ぎます。
謝辞
Office SharePoint Server 2007 Content Publishing チームは、この記事に投稿していただいた以下の方々に感謝します。
Simon Skaria、Microsoft SharePoint Customer Advisory Team
Luca Bandinelli、Microsoft SharePoint Customer Advisory Team
Steve Peschka、Microsoft Consulting Services
George Perantatos、Microsoft エンタープライズ コンテンツ管理
Tyler Butler、Microsoft Enterprise Content Management
Robert Orleth、Microsoft Enterprise Content Management
Pat Miller、Microsoft Enterprise Content Management
Sean Squires、Microsoft Information Services
Ryan Duguid、Microsoft SharePoint Marketing
関連項目
その他のリソース
TechNet Webcast: Best Practices for Developing, Deploying, and Maintaining Forms Solutions (英語)