Asp.net MVC Webサイトを作成し、それを共有ホスティングプロバイダーでホストしました。私のウェブサイトは非常に一般的なアイデアを取り巻いているので、将来的には同時に多数のユーザーがいる可能性があります。
そこで、私は自分のウェブサイトをオンロードパフォーマンスでテストする方法を考えていました。100人または1000人のユーザーが同時にオンラインでWebサイトを閲覧しているときのサイトのパフォーマンスと同様です。これにより、LINQクエリが適切に記述されているかどうかもわかります。
Asp.net MVC Webサイトを作成し、それを共有ホスティングプロバイダーでホストしました。私のウェブサイトは非常に一般的なアイデアを取り巻いているので、将来的には同時に多数のユーザーがいる可能性があります。
そこで、私は自分のウェブサイトをオンロードパフォーマンスでテストする方法を考えていました。100人または1000人のユーザーが同時にオンラインでWebサイトを閲覧しているときのサイトのパフォーマンスと同様です。これにより、LINQクエリが適切に記述されているかどうかもわかります。
回答:
まず、適切な用語はストレステストです。ウェブサイトのストレステストにはかなりの数のソリューションがありますが、私がお勧めする1つのホスト型ソリューションはloadimpactです。彼らが行うことは、世界中のさまざまなサーバーからのリクエストでサイトを攻撃し、サイトがストレスをどのように処理したかについての分析レポートを提供することです。彼らはあなたが一般的なアイデアを得ることができる無料のテストを持っていますが、それ以上の場合はサブスクリプション料金を支払う必要があります。
これらの種類のテストは、訪問者の観点からのみWebサイトをテストします。より具体的な情報については、アプリケーションをローカルでプロファイリングする必要があります。また、以前の回答に追加するものは何もないため、Apache JMeterも使用しています。
そして最後に、パフォーマンスを重視するWeb開発者であれば、YSlowを確認する必要があります。
YSlowは、JavaScriptを使用して動的に作成されたコンポーネントを含む、ページ上のすべてのコンポーネントを調べて、Webページのパフォーマンスを分析します。ページのパフォーマンスを測定し、改善のための提案を提供します。
YSlow for Firefoxは、Firebug用のFirebug Web開発ツールに統合されています。
たいていの場合、私はJavascriptが実際のボトルネックであり、バックエンドコードやデータベースではないことに気づきます。もちろん、正しく記述されていないクエリはパフォーマンスを大幅に低下させる可能性がありますが、それらに対処した後は、常にYSlowを実行し、その提案に従ってください。
参考文献:
もちろんStackOverflowで!
共有ホスティングを使用しているため、アプリケーションがいつでもアクセスできるリソースのレベルは保証されないため、パフォーマンスを適切に示すテストを実行することはできません。
ただし、その状況で私が行うことは、専用のボックス(これはあなた自身のラップトップである可能性があります)で独立してテストを実行することから始めることです。Visual Studio Load Test suiteやJMeter(個人的には我慢できない)などのツールを使用して、アプリケーションの一般的なパスを表す一連のテストを作成します(使用を通じて一般的なパスに関する情報を取得できるはずです) Google Analyticsの機能です。これが利用できない場合は、考えられるものを使用できますが、これは正確なベースラインを提供しないことに注意してください)。次に、ランプアップテストを行い、1人のユーザーから始めて、推定ピーク負荷に達するまでユーザーを徐々に追加します。これは、システムが全体としてどれだけうまく機能するかを示しているはずです(個人的には、ヘッドルームを確保するために、もう少し詳しく説明します)。
最後に、テストの実行中にANTSパフォーマンスプロファイラーなどのプロファイリングツールを実行します(これにより、オーバーヘッドが増えることに注意してください)。これにより、実行時間の長いクエリとメソッドを識別できるようになり、アプリケーションが実際にどこで遅いのかを知ることができます(1つのヒント:実際にそうなるとは限りません)。
最初に述べたように、主な問題は、あなたが共有ホスティングを利用していることです。そのため、現実的なライブ環境のエミュレーションを実行することはほぼ不可能です。ただし、アプリケーションが約束されたリソースと同様の環境に適度なヘッドルームを備えている場合は、予想以上に環境の限界に達したとしても、ホスティングでコードが耐えられると確信する必要があります。
JMeterやThe Grinderなどのツールを調べることができます。
私はこれまでJMeterのみを使用してきました。これは、非常に簡単にテスト計画を作成できるグラフィカルツールです。複数のスレッドで複数のユーザーをシミュレートできます。また、ブラウザをJMeterプロキシにリンクして実際の作業を行うことで、サイトの一般的な使用状況を記録できるため、リクエストを最初から作成する必要はありません。グラインダーは、私が正しく思い出せばスクリプトベースですが、ぴったりかもしれません。