max_user_connectionsの確認方法
RDS MySQLで、max_user_connectionsは下記のSQLで確認できる。
select @@max_connections;
max_user_connectionsでカウントされるコネクションの数
RDSでは、利用者によるコネクションに加えて、rdsadminというユーザが自動的にDBへ接続してくる。
max_user_connectionsはこのコネクション数も考慮する必要がある。
例えばmax_user_connections=100で、rdsadminが4コネクション分つなぎに来ている場合、ユーザのプログラムで接続できるのは100-4の96コネクションだけになる。
RDS MySQLの設定値
RDS MySQLで、この値は"DBInstanceClassMemory / 12582880"の計算式として定義されている。
これを固定値に変更して、インスタンスサイズを大きくするとメモリ容量に対して同時接続数が少なくなりすぎる。
max_user_connectionsの説明
Amazon RDS for MySQL のパラメーターを設定するためのベストプラクティス。パート 3: セキュリティ、操作管理性、および接続タイムアウトに関連するパラメーター より引用
このパラメータを使用して、ゼロ以外の値に設定することで、クライアントの MySQL サーバーリソースの使用を制限できます。
このパラメータは、指定されたアカウントが確立できる同時接続数を制限します。
接続数がこの値に達したときに、新しい接続を作成しようとすると、「警告: mysql_connect (): ユーザー xxxxxxxx
は既に ‘max_user_connections’ 個以上のアクティブ接続を持っています」のようなエラーを受け取ります。
デフォルト値は 0 です。これは、指定されたアカウントの同時接続を制限しません。
- https://aws.amazon.com/jp/blogs/news/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-3-parameters-related-to-security-operational-manageability-and-connectivity-timeout/
こちらもおススメ