nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

JBoss AS 7.1.1のHTTPアクセスの速度

JBoss Advent Calendar 2012の7日目のエントリです。JJBugTomcatとAS7で同じWebアプリをベンチマークしたらAS7の結果がバラついて遅めなんですが、という相談を受けたのでHTTPのアクセス速度に問題があるか軽く見てみましょう。

環境はこんな感じでクライアントもサーバも同じマシン上です。

まず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だけ抜き出します。

  • Apache Tomcat 7.0.33
    • 9186.59
    • 9862.62
    • 10064.94
  • JBoss AS 7.1.1
    • 9158.17
    • 10351.87
    • 9887.00

そんな有意な差はないですね。バラつく、ということでしたが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%くらい速い。