2016-08-15 14 views
0

私は.Net用にMySqlConnectorを使用しています。プーリングはデフォルトでオンになっています。今、他の関心のある人たちがウェブの周りに述べたように、これは私が数々の睡眠関係を得ることを意味します。接続プーリングは実際にどのように機能しますか?

私のサーバーは300の接続(AWS RDSの4GB RAM RDS MySqlサーバーで許可されているものとほぼ同じです)を処理でき、眠っている300の接続があるとしましょう。接続301は、アプリケーションによって要求されると、します:

a)のプールは、それ
Bのための既存の眠っ300台の接続のいずれかを使用)、最大接続エラーをスローし、私の理解への接続

を否定し、プールは非アクティブ(スリープ)接続を引き渡すので、答えが必要です。 300件のアクティブな接続(たとえば、クエリ実行中)が300件ある場合、Bはどうなるでしょうか?

max_connections = 300は非常に低いように私を驚かせています。

おかげで、ボブ

答えて

1

限り、(あなたは、アプリケーションの接続プールの外部からの接続を有していてもよい)、接続プール内の空き接続があるとMySQLサーバで利用可能な接続がそこにもあるように、アプリケーションはいけません接続エラーが多すぎます。

最大300の同時接続で十分かどうかは、ピーク時に予想される現在のオンユーザー数をシミュレートするストレステストによって判断できます。データベース接続コードを最適化する(必要な直前に接続をオープンすることで、それを閉じる必要がなくなります)300の同時データベース接続で、より多くの同時ユーザーを簡単にサポートできます。

+0

私は尋ねたいと思っているように、寝る接続は無料で接続していますか? –

+0

私が尋ねたいのは、私が求めていることです。 –

+0

アプリケーションの観点からは無料です。接続プールを使用しない他のアプリケーションの観点から自由ではありません。 – Shadow

関連する問題