LoginSignup
1
1

More than 5 years have passed since last update.

コネクションプーリングライブラリ BoneCP検証

Last updated at Posted at 2015-06-10

参考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

●DBCP
image

●BoneCP
image


1リクエストの中で100回selectを行うパターン

スレッド数:500
Ramp-Up期間:1
ループ回数:20

●DBCP
image

●BoneCP
image


1リクエストの中で100回selectを行うパターン

スレッド数:1000
Ramp-Up期間:1
ループ回数:10

●DBCP
image

●BoneCP
image

===============================================

1リクエストの中でselect,insertをそれぞれ1回行うパターン

スレッド数:1000
Ramp-Up期間:1
ループ回数:10

●DBCP
image

●BoneCP
image

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1