ASP.NET パフォーマンスのベスト プラクティス
著者:Eve Cole
更新時間:2009-06-30 16:04:02
MSDN Web キャストに基づいて論理/物理設計実践に関する推奨事項を整理する: 論理 3 層モデル ページ (.aspx) とユーザー コントロール (.ascs) を使用する
再利用可能な型 (コンポーネント) は bin ディレクトリに配置されます。 データは SQL データベースに配置されます。 推奨: Web ファームの設計。 訪問者が常に同じサーバーに戻るとは想定しません。
Web ファームのセッション状態に関する推奨事項: 同じプロセスを使用する場合は、(可能な場合は) 次のことを回避する必要があります。
DCOM を介したリモート呼び出しによる XML Web サービスを使用した XML Web サービスへの同期呼び出し:
インターネット上のアプリケーション間の通信は、アプリケーション内通信には使用しないでください。 推奨事項: DMZ セキュリティ ゾーンが必要な場合は、ISA Server を使用してください。
ISA経由でのみアクセスを許可する
DMZ を介した ASP.NET への ISA トンネル
遅延バインディングの使用を避けるために、プロセス切り替えの言語/コードの推奨事項を減らします。
<%@ Page Language = "VB" Explicit = "true" %> ではすべての変数タイプの宣言が必要ですが、遅延バインディングは引き続き許可されます
<%@ Page Language = "VB" strict = "true" %>遅延バインディングの使用を禁止します
COM の対話には COM の使用をできるだけ少なくすることをお勧めします。また、マネージド コンポーネント データを使用するには、データを SQL Server に保存し、適切なデータ アクセス方法 (OLEDB/SQL クライアント/ODBC) を選択することをお勧めします。
データ アクセス状態管理には DataSet と DataReader を合理的に選択し、セッションを保存する適切な方法を選択します: Inproc/StateServer/database
セッションに STA の COM オブジェクトが保存されないようにするには、単純なデータ型を使用します。セッションが必要ない場合は、EnableSessionState = "false" として無効にします。
可能であれば、読み取り専用属性を使用してください: EnableSessionState = "Readonly"
ViewState が必要ない場合は、無効にします (EnableViewState = false)。
ViewState のデータを最小化する ViewState のサイズを表示する HTML 出力ソース コードを表示するか、トレースを有効にする
キャッシュを使用する ページ キャッシュ 部分ページ キャッシュ
キャッシュオブジェクトデータキャッシュ
WEB パフォーマンスを定量化するための WebService キャッシュ方法: マシンのスループット応答時間 サーバーをロードしてテスト済み 複数のクライアント マシンを使用して Microsoft Web アプリケーションのストレスを軽減
複数のシナリオをテストして、さまざまな負荷 (100、250、500、750、1000 など) で計算する必要がある単一ページのパフォーマンスをテストします。同時にご来店のお客様)
許容可能な TTFB/TTLB 応答時間内の最大クライアント負荷を特定します。 クリティカル パフォーマンス カウンター プロセッサー、CPU 使用率 || 低い値 = 露出またはロック競合
ASP.NET、キューに入れられたリクエストの数 || 直線的に増加するということは、サーバーが完全に負荷がかかっていることを意味します
ASP.NET アプリケーション、1 秒あたりのリクエスト||動的スループット (一貫性がある必要があります)
ASP.NET アプリケーション、エラーの合計数 || 機能エラーを示します (0 である必要があります)
ASP.NET アプリケーション、ワーカー プロセスの再起動 || 重大な機能エラーを示します