- PR -

コネクションプールについて

1
投稿者投稿内容
コージ
常連さん
会議室デビュー日: 2005/07/29
投稿数: 39
投稿日時: 2008-06-11 10:46
コネクションプーリングについてお聞きしたいことがあります。
Web開発においてDBアクセスのコネクションをプールする技術は
必須だと思うのですが、プール数はどのように考えるのでしょうか?

例えば5000人のユーザを想定していた場合などプール数はみなさんどのくらいにしますか?
環境やユーザ数を考慮した計算式などあるのでしょうか?

よろしくお願いします。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2008-06-11 11:33
M/M/nモデルの待ち行列理論とかでどうでしょう?

nがプールサイズに対応することになります。

#ちなみに「プール数」は普通は1つ
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-06-11 12:30
少なくとも、HTTPの最大コネクション数より多くする必要は有りません。
HTTPDで待ち行列が発生するので。

後はRDBMS自体の最適な数との調整かと。

引用:

例えば5000人のユーザを想定していた場合などプール数はみなさんどのくらいにしますか?
環境やユーザ数を考慮した計算式などあるのでしょうか?


その5000人がどのようにアクセスするかによっても違いますし、
単に人数だけでは何とも言えません。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2008-06-11 15:13
回答ではありませんが、足りなくなった場合の振舞いは理解しておいた方が良いです。

1) エラー返す
2) とりあえずセッションを作成してクローズしたら切断
3) あくまで待つ 待機する

というパターンがあります
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2008-06-12 14:49
私も同様に悩んだ経験があります。

そのようなアプリケーションサーバの構築経験もなく、どれぐらいにすれば
よいのだろう。
と、あちこちあたったのですが、参考になる数字などは得られませんでした。

もう、その時の環境や資料などは手元になく記憶に頼ってですが、

・利用端末 1000台程度
・ほぼ全員が一日1度はログインする。
・朝一でログインして帰るまでそのままのケースも多い。
・2割程度の人は1日2時間程度そのシステムを利用する。
・時期、部署(多くて20名程度)によっては重めの処理を勤務時間中頻繁に使用する。

と予測して最大50に設定したとおもいます。

2年ほど運用も見てました。あまり積極的にモニタや運用に関するヒヤリングを
おこなってませんが、コネクションプールに関する問題、パフォーマンス上の問題は
1件も出ていません。


設定時はノウハウも調べる時間もなく、かなり適当に設定して、必要があれば
見直せばいいとおもってました。

どういうサイトでどういう設定をして運用して、こういう問題があった。
あるいは安定稼動してるといった情報があればとおもいました。

他の方も設定例をアップしてみてはいかがでしょう。


コージ
常連さん
会議室デビュー日: 2005/07/29
投稿数: 39
投稿日時: 2008-06-13 10:49
みなさん回答ありがとうございます。
返信が送れて大変すみません。

やはりこのようなことはみなさんも回答しづらいですよね。
progmanさんのようにシステムに関わることを一から洗い出し
プール数を考えたいと思います。

どうもありがとうございました。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2008-06-13 10:58
M/M/nモデル、全然難しくないのに・・・。

http://www.objectclub.jp/technicaldoc/monkey/s_wait

「おまけ 窓口が倍で1列の場合」
コージ
常連さん
会議室デビュー日: 2005/07/29
投稿数: 39
投稿日時: 2008-06-13 11:12
カーニーさん
どうもありがとうございます。
確かにわかりやすいサイトですね。
ただ自分にはこのサイトからコネクションプール数を
導き出す能力がありません・・・
でもすごく参考になりましす。
もっと勉強したいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)