TKC Works

ギジュツ的なメモ、読書感想文など

Webサイトの負荷テスト参考記事など

apache bench

http://blog.verygoodtown.com/2012/05/apache-bench-ab/

wrk

http://memo.yomukaku.net/entries/kYIVkXx

jMeter

http://www.techscore.com/tech/Java/ApacheJakarta/JMeter/index/ http://sy5.sakura.ne.jp/jmeter/ref/


秒間どれくらい処理が出来るか見たくてパラメータを変えながら実行するんだけど、それぞれ微妙に意味合いが違うので注意が必要。
例えば-cだけどヘルプで見ると、

  • ab
    -c concurrency Number of multiple requests to make at a time
  • wrk
    -c, --connections <N> Connections to keep open

になっている。
abはガチで瞬間的に同時にアクセスしているっぽくて、c=50くらいでssl入れてロードバランサにしたNginxサーバ(EC2 m1.small)のCPUが即吹き飛んだ。

jMeterはそもそもパラメータが違う、スレッド数とかRamp-Up期間の考え方はここが参考になる。
http://keis-software.com/2013/09/02/jmeter-%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%951-ramp%EF%BC%8Dup%E3%80%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E6%95%B0%E3%80%81%E3%83%AB%E3%83%BC%E3%83%97%E5%9B%9E%E6%95%B0%E3%81%AE%E8%AA%A4/
スレッドの開始時間がばらされるので完全な同時アクセスとはいかないけど、Ramp-Upを1でスレッド数を高めにすると瞬間的な負荷もそれなりにかけられる。

秒間で考えると実際のアクセスに近いのはabよりはwrkやjMeterのような気がする。

6/4追記
jmeterのHTTPリクエストでKeepAliveを有効にしていたための勘違い。
abは-kオプションを付ける必要がある。
wrkは常にKeepAliveが有効っぽい。