http://github.com/kazuho/manymanythreads
↑kazuhoさんがCで書いたエコーサーバーと、そのベンチマークツールによって、自分のサーバでどんぐらいのQPSがでるのかがわかる。
たとえば自分のマシン(SC440)だと
./testechoclient -c 1 -n 1000000 -f -p 5050
で、
77906.624081 reqs./sec. (1000000 in 12.835879 seconds)
ぐらいでる。
一番単純なエコーサーバーをうごかしたときの性能を把握しておくことによって、どのぐらいの速度がでてしかるべきなのかが把握できるようになるという。
【追記】
ここで知った echo server の限界性能をもとに、その後、自分がなにかサーバ等を書いた場合に最適化したらどのぐらいの速度がでるかを予測できる(経験が必要だとおもうけど)。現実的には、ちょっと内部で処理しただけで、ガクッと性能は落ちる。
ちなみに picoev_httpd のベンチ結果は
% ./testhttpclient -c 1 -n 1000000 -p 9010 -a 1 -f 37409.658014 reqs./sec. (1000000 in 26.731065 seconds)
こんなかんじ。ざっくりと2倍ぐらい遅くなっている。この httpd はかなり処理をはしょっている実装なので、ちゃんと処理をすれば、ぐっと遅くなる。
【参考文献】
http://www.slideshare.net/kazuho/happy-optimization-527279