参考URL:
http://jolbox.com/
http://netbuffalo.doorblog.jp/archives/4550713.html
http://atsuyama.blog.jp/archives/51340124.html
https://github.com/wwadge/bonecp
http://kielczewski.eu/2014/05/database-connection-pooling-with-bonecp-in-spring-boot-application/
BoneCPの設定値を調べるのは下記。ソースのコメントを見るのが早い
https://github.com/wwadge/bonecp/blob/master/bonecp/src/main/java/com/jolbox/bonecp/BoneCPConfig.java#L3
概要
コネクション・プーリングが50倍早くなるという噂のBoneCPの検証を行う。50倍早くなるのならば導入メリットがかなり大きい。
単純比較での早くなるのは、検証結果が出ているので、今回は実環境、実構成での導入時に負荷テストをして優位性があるのかが知りたい。
構成は下記
SpringMVC + MyBatis + BoneCP
SpringMVC + MyBatis + DBCP
やりたいこと
SpringMVC + MyBatisへの導入の方法
BoneCPの設定項目調査
サンプルアプリの作成
Jmeterを使用しての負荷テスト(JDBCとBoneCPの両方で行い比較)
検証の項目
・DBCPとBoneCP両方の負荷テストを行い速度比較
段階的に負荷を増やしていくとどうなるか
・DBCPとの機能の違いはあるのか
トランザクション使えるよね
→問題なし
考察
検証結果よりBoneCPの方がDBCPと較べて、1.3~1.4倍早くなることがわかる。
乗り換えも設定ファイルの入れ替えのみで可能なので楽
懸念事項でDBCP機能との違いは今のところ見当たらない。(BoneCPの方がより高機能)
検証結果
1リクエストの中で100回selectを行うパターン
スレッド数:100
Ramp-Up期間:1
ループ回数:100
1リクエストの中で100回selectを行うパターン
スレッド数:500
Ramp-Up期間:1
ループ回数:20
1リクエストの中で100回selectを行うパターン
スレッド数:1000
Ramp-Up期間:1
ループ回数:10
===============================================
1リクエストの中でselect,insertをそれぞれ1回行うパターン
スレッド数:1000
Ramp-Up期間:1
ループ回数:10