パフォーマンステストの基礎を理解することに関して、いくつかの基本的な質問があります。さまざまな状況下で実行したい場合があることを知っています-ストレステスト-耐久性テストなど。しかし、ここでの私の主な目的は、応答時間が、より高いエンドまたは少なくとも平均を超える一連の負荷の下でのアプリケーションから適切であることを確認することです。ロード。
私の質問は次のとおりです。
アプリケーションの予想される応答時間を計画し始めるとき。あなたはどう思いますか。それが最初のステップである場合。つまり、私は今Webアプリケーションを持っています。空中からフィギュアを取り出して、「アプリケーションが各リクエストに応答するのに3秒かかると思います」と言うだけですか。次に、その応答時間を取得するためにアプリケーションに欠けているものを見つけ出しますか?
または、その逆で、特定のハードウェアセットを使用してパフォーマンステストを開始し、現在の応答時間を確認してから、結果を確認して、今は8秒だと言います。最大で3秒になるので、3秒に最適化する方法を見てみましょう。しかし、再び3秒は空中ですか?確かに、マシンをスケールアップするだけでは応答時間は上がりません。単一のマシン/サーバーに負荷がかかっていて、クラスタリングを開始した場合にのみ、応答時間が長くなりますか?
これで、1人のユーザーの応答時間は3秒になりますが、負荷が増えると指数関数的に低下します。それで、「コードをさらに最適化する必要がある」(上限があります)と「サーバーをスケールアップする必要があります」(これにも制限があります)の間に線を引くのはどこですか?
パフォーマンスと負荷テストを行うための最良の無料ツールは何ですか?私はJmeterを少し使用しました。しかし、他に何か良いものはありますか?それは良いオープンソースですか?
コードを最適化する必要がある場合、リクエストへの応答に時間がかかった特定のフローのプロファイリングを開始しますか?
基本的に、アプリケーションのパフォーマンステストをエンドツーエンドで実行する方法を確認したいと思います。リンクや記事は非常に役立ちます。
ありがとう。