【負荷テスト】 リリースで失敗するケース
こんにちは、深堀です。
負荷テストをリーススケジュール優先、省略される事がありませんでしょうか?
昨今、クラウドでの動作が前提となっているため、リリース後のスケールアップやスケールアウトが容易であるとで、事前の負荷試験が軽視されてしまいがちです。
いざリリースしてから応答が遅い、サーバーダウンなど発生させないためにも負荷テストは行わなければなりません。
負荷テストといえば、「Apache Bench」が有名なのですが、実は大きな落とし穴があります。
Apache Benchとは
「ab」はApache Bench(アパッチ ベンチ)の略で、Apacheで標準に付いているWEBサーバの性能を計測するためのコマンドです。
Apacheをインストールすると、\bin\に格納されていて、名前はwindowsだとab.exeになります。
参照:http://qiita.com/flexfirm/items/ac5a2f53cfa933a37192
私が5年前にリリースを控えたシステムを負荷テストしましたが、最大パフォマンスが秒間2アクセスとサービスインできないレベルでした。しかし、開発会社からの報告では秒間25アクセスという報告を受けました。
なぜ、こんなにも違う結果になってしまったのでしょうか?
私が使用していたのは「JMETER」、開発会社は「Apache Bench」でした。
何が問題かというと、「Apache Bench」は、リクエストとHTTPステータスコードなどのヘッダ情報しか参照しない点にあります。(画像などのコンテンツは読み込みません)
例えば、画像サイズを渡すとサムネイルを作成してくれるプログラムがあります。
HTMLの中に画像(imgタグ)に、そのプログラムが設定されている場合、「Apache Bench」では実行されません。画像編集は、コストのかかる処理なので全く違ったテスト結果になります。
また、ページで何か読まれている場合も同様なことが起こります。
負荷テストは、ページ表示をすべて完了した上での結果となるのでツール選びには注意が必要です。
それではまた