JBoss Advent Calendar 2012の7日目のエントリです。JJBugでTomcatとAS7で同じWebアプリをベンチマークしたらAS7の結果がバラついて遅めなんですが、という相談を受けたのでHTTPのアクセス速度に問題があるか軽く見てみましょう。
環境はこんな感じでクライアントもサーバも同じマシン上です。
- Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz, Memory 16GB
- Fedora 17 64 bit, kernel-3.6.8-2.fc17.x86_64
- Oracle JDK 1.6.0_37
- Apache Tomcat 7.0.33
- JBoss AS 7.1.1
まずJava VMオプションでメモリの値くらいは揃えたほうがいいですね。Tomcat側は指定なしなので、合わせてJBoss側のメモリ指定を消去しておきます。
テスト対象はtest.warというWebアプリで512バイトのindex.htmlを置いてあります。起動してからcurlで一回確認、abを各3回取得して、変なバラつきのないことを確かめます。
curl http://localhost:8080/test/index.html ab -c 20 -n 100000 http://localhost:8080/test/index.html > jboss711.ab1 ab -c 20 -n 100000 http://localhost:8080/test/index.html > jboss711.ab2 ab -c 20 -n 100000 http://localhost:8080/test/index.html > jboss711.ab3
さて結果。Requests per secondだけ抜き出します。
そんな有意な差はないですね。バラつく、ということでしたがlongest requestも特に差はなし。
これは非常に限定的な確認ですが、この確認した範囲ではhttpアクセス自体には差は出ませんでした。相談を受けた件については何かベンチマーク対象のアプリケーション依存な可能性が高いかもしれません。
一点、今回はメモリネックではないので関係ないですが、メモリ使用量についてはJBoss ASのほうが機能が多い都合上ちょっと多く使うので、同じ値に絞った場合はJBossのほうが遅いというかGCネックが大きくでる結果になり、フェアな比較にならないので注意してください。
おまけ。yum install zlib-develしてからWebサブシステムのnative="false"をtrueに変更する。
- JBoss AS 7.1.1 Native
- 10240.64
- 11249.51
- 11414.47
10%くらい速い。