OSSの性能・信頼性評価/障害解析ツール開発

IPAの公開したLinux上のアプリケーションサーバの評価レポートが興味深い.

http://www.ipa.go.jp/software/open/forum/DevInfraWG.html

基本的にはSPECjAppServer2004を用いているが,さまざまな影響を知るために独自の使い方をしているようだ.

なお,JBossWebLogicを比較して,WebLogicの方が高性能だと結論づけているようで,サーバの実装においてもクラスタ構成時のHttpSessionのレプリケーションコストや分散アルゴリズムなどが大きく違うようだ.他に使用しているJava VMの差(同期コストとか)もあるかもしれないなあ.

WebLogicの使っているJRockitのホワイトペーパーは次.

http://www.bea.com/framework.jsp?CNT=whitepapers.htm&FP=/content/products/jrockit/learn/

これを見ると,次の差分などが性能に影響しそうな気がする.

  • 小さなオブジェクトのスレッド単位のメモリ割り当て.
  • thin lockとfat lock(スピンロックとスリープの適応型ロック)の使い分け.

ただし,後者では-XXdisablefatspinオプションを指定しても変わらなかったそうなので,より過酷な状況でないと差が出ないかもしれないが.比較のために同じJVMでも実験してもらいたいものだ(追記: そういえばthin lockも軽くなっていると書いてあったので,全体的に同期コストが軽くなっている可能性はある).

なお,使用したJBoss 4.0.0にはreplication-granularityをATTRIBUTEに設定した時に正常に動作しないバグがあるらしいので,これが修正されるJBoss4.0.2以降では,よりよい結果が出そうだ.実際に,406ページで独自パッチを当てた計測結果では,理論値にかなり近づいている.読者は,この部分を見逃してはいけない(マスコミはきっと忘れるだろうが(苦笑)).

最近は,各企業において,OSSプロダクトに対する評価が重要視されてきているので,こういうレポートが公になるのは非常によいことだと思う.