私のアプリケーションでは、hibernate 3.2.2を使用しています。接続プーリングについては、c3p0 0.9.1を使用しています。 私はデータベース操作を行うためにビューパターンで汎用DAOパターンとオープンセッションを使用しています。
既存のウェブサイトの新しいウェブサイトに取り組んでいます。現時点では、訪問の回数は、既存のアプリケーションでは50万ページの訪問です。私はc3p0設定と混同しています。どのようなベンチマークで、私はオープンする接続の数を決定します。最大接続、MIN-接続、アイドル時間、タイムアウトなど....接続プーリングで必要な接続数を決定するにはどうすればよいですか。
6
A
答えて
3
まず、要求が到着し、サービスを提供するための空き接続がない場合、プールが行う処理を決定する必要があります。それは例外をスローしますか? nullを返しますか?別の接続がプールに返されるまでブロックしますか?
あなたが容量を超えたときに何が起こるかわからたら、あなたが呼び出すコードでこれに対処できるかを考え、どのような状況では、これを実現するために許容可能です。コネクションの数が増えるにつれて、いくつかの要求を処理することを拒否し始めなければならない場合がありますが、そのポイントだけを決定することができます。実際のポイントは
- あなたの現在のアイドル、ビジー要求率
- これらのレートのボラティリティー率はたくさんの周りにジャンプする場合(あなたがより多くの「余裕」をしたいようなものを含め、多くの要因に依存します)
- ハードウェアの改善と比較して容量の増加が予想され、開発者の時間がこのコードを修正するために予算化されています(2ヶ月後にアップグレードする予定がある場合は、数年)
- 貴社が処理能力について保証している保証
- "後で試してみる"要求を理解するクライアントの能力。もう片方の自動化されたスクリプトで、503で1分間スリープしてもう一度試してみると、人間が「一時的に容量を超えました」というメッセージよりも優れていて、 200レスポンスを返し、エラーで終了します。
- 要請の緊急性 - 若干の要求(子猫の写真を見る)は合理的に遅れる可能性がありますが、他のもの(株取引注文)は非常に時間に敏感です。
などなどなど。
希望すれば、同時に処理する必要があるリクエストの数を考え出すことができます(また、タイプのリクエストがある場合は、のリクエストがある場合は、これも考慮する必要があります) 。次に、接続の目標速度を維持するために必要なプール内の接続数を検出するまで、着信要求がどのように取得して接続、推論、プロファイリングを取得するかを調べるだけです。
リクエストされていないスレッド(ワーカープールなど)が同じプール(プールが大きくなる必要があります)から独自の接続を取得すること、およびそのリクエストの一部実行(プールは小さくすることができます)。
0
小さな設定変更を行う、あなたのテストインスタンスをプロファイルして、最終的には負荷テストで確認してください。
関連する問題
- 1. コードでDBX接続プーリングを設定するにはどうすればよいですか?
- 2. URLConnectionによる接続プーリング?
- 3. SQLite.net接続プーリングが機能していないようです。
- 4. HTTP接続プーリングは可能ですか?
- 5. レール接続プーリングはどのように機能しますか?
- 6. jboss接続プーリング
- 7. スプリング接続プーリング
- 8. eclipselink接続プーリング
- 9. 接続プーリングHibernate
- 10. Spring MVCでJBoss接続プーリングを使用するにはどうすればよいですか?
- 11. JDBC/MySqlConnectorj接続プーリングを有効にするにはどうすればよいですか?
- 12. DBCP接続プールでのブロック(オープンおよびクローズ接続)。 OpenEJBのデータベース接続プーリングはプラガブルですか?
- 13. LANに接続され、ルータ経由でインターネットに接続されているコンピュータに接続するにはどうすればよいですか?
- 14. コンピュータにデータベースを接続する際に、接続文字列はどうすればよいですか?
- 15. マルチスレッドサービスでのデータベース接続プーリング
- 16. SQL Azureでの接続プーリング
- 17. PostgreSQL JDBCでの接続プーリング
- 18. 接続文字列はどうすればよいですか?
- 19. SQLAlchemy接続、プーリング、SQLite
- 20. PHPの接続プーリング
- 21. Tomcatの接続プーリング、アイドル状態の接続、接続の作成
- 22. C#でOAuthに接続するにはどうすればよいですか?
- 23. PHPでAsteriskマネージャーに永続的な接続を確立するにはどうすればよいですか?
- 24. TomcatによるMongoDB Javaドライバデータベース接続プーリング
- 25. グローバルイベントリスナーを接続するにはどうすればよいですか?
- 26. 着信接続をデバッグするにはどうすればよいですか?
- 27. Oracle10gでc3p0でHibernate接続プーリングを設定する
- 28. Campaign Monitor APIに接続するにはどうすればよいですか?
- 29. フレックスアプリケーションでfacebookで接続するにはどうすればいいですか
- 30. C#でオフラインデータベースに接続するにはどうすればいいですか
5 laks = 500,000、はい? –
はい。ありがとうございます。私はそれを50万に変更します。 – Shashi
こんにちはシャーシ。 http://stackoverflow.com/questions/1208077/optimal-number-of-connections-in-connection-poolをご覧ください。 –