時計を壊せ

駆け出してからそこそこ経ったWebプログラマーの雑記

ApacheBenchを使いたいけどApacheを入れるのがだるかったのでベンチマークツール書いた

なんでこんな事をしたんですか?*1

昨日、コンソール開いたんです。コンソール。
そしたらなんかabコマンド打ってもApacheBench使えないんです。
で、よく見たらなんかApacheが入ってなくて、"command not found: ab"とか書いてあるんです。
もうね、アホかと。馬鹿かと。
お前らな、ApacheBench如きで普段使ってないApache入れるかよ、ボケが。
Apacheだよ、Apache
なんか沢山モジュールとかも付いてるし。1台何役だよ。おめでてーな。
よーしついでだからこれもこれも使うといいぞー、とか言って色々いれてくるの。もう見てらんない。
お前な、ApacheBenchだけよこしてさっさと消えろと。
サーバーってのはな、もっと殺伐としてるべきなんだよ。
ネットワーク越しのイカれた奴といつ喧嘩が始まってもおかしくない、
落ちるか落ちないか、そんな雰囲気がいいんじゃねーか。いらねーモジュールは、すっこんでろ。
で、やっといらないやつ全部消えたかと思ったら、

ここで書くの飽きた。
元ネタ:吉野家コピペとは - はてなキーワード

要するに

ApacheBench使いたいけど、そのためだけにApache入れるのもやだなーって思ったので、作りました。

どんなやつ?

Perl触ってる人ならあんまり苦労せずに入れられそうなやつ。
将来的にはcpanm App::wwwbenchで入れられるようにしたいなあ。

オプションは

  • -c Int
    • 同時コネクション数
  • -n Int
    • 連続アクセス数
  • --url Str
    • アクセス先URL

って感じです。現状だと以下のように使って以下のような結果が得られます。

$ wwwbench -n 2 -c 10000 --url http://karupas.org/
[0]
- connect total: 10000[connection]
- success total: 1449[connection]
- success rate: 14.490[%]
--- total max    : 9.237[s]
--- total average: 5.089[s]
--- total min    : 0.000[s]
--- success max    : 9.235[s]
--- success average: 8.344[s]
--- success min    : 6.609[s]
[1]
- connect total: 10000[connection]
- success total: 1743[connection]
- success rate: 17.430[%]
--- total max    : 10.126[s]
--- total average: 5.466[s]
--- total min    : 0.000[s]
--- success max    : 10.126[s]
--- success average: 8.484[s]
--- success min    : 6.159[s]

とりあえず現状はこんな感じで結果が得られます。

なにしてんのこれ

Coro+Furlで並列アクセスしてます。
並列アクセスに関しては
gfx's
gist: 665488 — Gist
を参考にしました。

思い付きで書いたのでテストもドキュメントも書いてませんが、
吐いてるフォーマットとか本当センス無いと思うので是非意見下さい!Fixme!
karupanerura/p5-App-wwwbench · GitHub

*1:ネタです