サイトが負荷の下でどのように機能するかをテストする方法はありますか


9

Asp.net MVC Webサイトを作成し、それを共有ホスティングプロバイダーでホストしました。私のウェブサイトは非常に一般的なアイデアを取り巻いているので、将来的には同時に多数のユーザーがいる可能性があります。

そこで、私は自分のウェブサイトをオンロードパフォーマンスでテストする方法を考えていました。100人または1000人のユーザーが同時にオンラインでWebサイトを閲覧しているときのサイトのパフォーマンスと同様です。これにより、LINQクエリが適切に記述されているかどうかもわかります。

回答:


12

まず、適切な用語はストレステストです。ウェブサイトのストレステストにはかなりの数のソリューションがありますが、私がお勧めする1つのホスト型ソリューションはloadimpactです。彼らが行うことは、世界中のさまざまなサーバーからのリクエストでサイトを攻撃し、サイトがストレスをどのように処理したかについての分析レポートを提供することです。彼らはあなたが一般的なアイデアを得ることができる無料のテストを持っていますが、それ以上の場合はサブスクリプション料金を支払う必要があります。

これらの種類のテストは、訪問者の観点からのみWebサイトをテストします。より具体的な情報については、アプリケーションをローカルでプロファイリングする必要があります。また、以前の回答に追加するものは何もないため、Apache JMeterも使用しています。

そして最後に、パフォーマンスを重視するWeb開発者であれば、YSlowを確認する必要があります。

YSlowは、JavaScriptを使用して動的に作成されたコンポーネントを含む、ページ上のすべてのコンポーネントを調べて、Webページのパフォーマンスを分析します。ページのパフォーマンスを測定し、改善のための提案を提供します。

YSlow for Firefoxは、Firebug用のFirebug Web開発ツールに統合されています。

たいていの場合、私はJavascriptが実際のボトルネックであり、バックエンドコードやデータベースではないことに気づきます。もちろん、正しく記述されていないクエリはパフォーマンスを大幅に低下させる可能性がありますが、それらに対処した後は、常にYSlowを実行し、その提案に従ってください。

参考文献:

もちろんStackOverflowで!


もちろん、loadimpactのサブスクリプション料金を支払う前に、他のソリューションを試してください。かなりの数の同様のソリューションがあります。私はそれを愛していますが、仕事は私ではなく料金を支払いました:)
yannis

私はそれが当面のいずれかの意味がないよう、今の厳密なテストをしたくない....無料のテストを使用することになります....ちょうどアイデア:-)取得したい
パンカジUpadhyay

7

共有ホスティングを使用しているため、アプリケーションがいつでもアクセスできるリソースのレベルは保証されないため、パフォーマンスを適切に示すテストを実行することはできません。

ただし、その状況で私が行うことは、専用のボックス(これはあなた自身のラップトップである可能性があります)で独立してテストを実行することから始めることです。Visual Studio Load Test suiteやJMeter(個人的には我慢できない)などのツールを使用して、アプリケーションの一般的なパスを表す一連のテストを作成します(使用を通じて一般的なパスに関する情報を取得できるはずです) Google Analyticsの機能です。これが利用できない場合は、考えられるものを使用できますが、これは正確なベースラインを提供しないことに注意してください)。次に、ランプアップテストを行い、1人のユーザーから始めて、推定ピーク負荷に達するまでユーザーを徐々に追加します。これは、システムが全体としてどれだけうまく機能するかを示しているはずです(個人的には、ヘッドルームを確保するために、もう少し詳しく説明します)。

最後に、テストの実行中にANTSパフォーマンスプロファイラーなどのプロファイリングツールを実行します(これにより、オーバーヘッドが増えることに注意してください)。これにより、実行時間の長いクエリとメソッドを識別できるようになり、アプリケーションが実際にどこで遅いのかを知ることができます(1つのヒント:実際にそうなるとは限りません)。

最初に述べたように、主な問題は、あなたが共有ホスティングを利用していることです。そのため、現実的なライブ環境のエミュレーションを実行することはほぼ不可能です。ただし、アプリケーションが約束されたリソースと同様の環境に適度なヘッドルームを備えている場合は、予想以上に環境の限界に達したとしても、ホスティングでコードが耐えられると確信する必要があります。


共有ホスティングテストと自分のサーバーの違いを明らかにしてくれてありがとう。
Pankaj Upadhyay 2012年

3

JMeterThe Grinderなどツールを調べることができます。

私はこれまでJMeterのみを使用してきました。これは、非常に簡単にテスト計画を作成できるグラフィカルツールです。複数のスレッドで複数のユーザーをシミュレートできます。また、ブラウザをJMeterプロキシにリンクして実際の作業を行うことで、サイトの一般的な使用状況を記録できるため、リクエストを最初から作成する必要はありません。グラインダーは、私が正しく思い出せばスクリプトベースですが、ぴったりかもしれません。


1

ストレステストにはLoadimpactも好きです。私のサイトで簡単にチェックするためによく使用するのは、Apache Benchです。最終テストを実行したい場合は、有料サービスを検討します。

私の仕事はWebLoadsにも投資しました。これは非常に高価ですが、すべてのサイトを内部でテストすることができます。私はそれをお勧めしません。


0

負荷テストは予想以上に時間がかかり、面倒な作業になるため、手動で行うことはできないと思います。おそらく、多くのユーザーが利用できるLoad Runnerを利用できます。


0

Autohotkey(AHK)スクリプトは、人間のユーザーをシミュレートできます。1日中実行します。

複数のボックスで実行して、少数のユーザーをシミュレートできます。テストスタイルは完全にユーザーの管理下にあります。1つのAHKスクリプトがレポート機能にスパムを送信し、それが他の機能のユーザーに影響を与えるかどうかを確認できます。

私はAHKのスレッド化機能に精通していないので、何千人ものユーザーをシミュレートすることは難しいかもしれません。あなたが持っているコンピュータの数に縛られているかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.