mysqlの同時接続数について質問です。
mysqlの同時接続数が一度上限にいってしまったら、時間が経過しても接続が削除されないのでしょうか?
上限に達してしまった環境があり、時間が経過しても上限に張り付いたままになっております。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
普通、クライアントが接続を開始し、作業を終わったら終了する(mysql_close() の呼び出し)ことで接続数は上下します。
つまり上限に達してしまったとすれば、それは接続して終了していない、行儀の悪いクライアントがいる、ということです。
クライアントをいじれないのであれば、MySQL 側で timeout による接続切断(wait_timeout もしくは interactive_timeout システム変数を参照)することで、行儀の悪いクライアントをさっさと接続中止にしてプールを再活用する、くらいしかないかな。
投稿2019/01/23 08:27
総合スコア13707
0
自己解決
みなさま、ご回答ありがとうございます。
そして、私の記述が不足していて申し訳ございません。
今回、Railsでアプリケーションを作成しており、ActiveRecordはデフォルトでDBとの接続をずっと保持したままにするという回答を知り合いのエンジニアから頂きました。
RDSのモニタリングから接続数が落ちているのも確認できたのですが、それは私がデプロイを実行した時期と重なりました。
重ね重ね、丁寧なご回答誠にありがとうございます。
ただ、言及いただきましたように、pool数の制御はしっかりやらなければならないことも併せてご教授頂きました。
Railsアプリケーション側でpool: 20で設定しており、RDSのmicroですと、最大の同時接続数が66となり、4台以上のEC2インスタンスを利用したら、EC2からRDSの接続は80まで接続しようとし、上限で張り付いて、さらにtoo many connectionエラーがでる。それならEC2のインスタンスを3台構成にして、EC2とRDS間の通信は遅くなっても、そっちを選択した方がよいというアドバイスも頂きました。
迅速なご回答を頂いたにもかかわらず、自己解決という形になり申し訳ございません。
投稿2019/01/24 11:54
総合スコア13
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
プログラムからの接続を閉じていますか?
接続を試みているプログラムから明示的に閉じるか、プロセスが終了しないと、接続は開きっぱなしになりますが
投稿2019/01/23 08:13
総合スコア2321
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。