同時接続が急増した場合やワークロードが変更された場合、ApsaraDB RDS for MySQL インスタンスの接続制限を調整する必要があることがあります。ApsaraDB RDS コンソールまたは API を通じて max_connections と max_user_connections を変更します。どちらのパラメーターも動的なため、再起動しなくても即座に有効になります。
パラメーター
RDS インスタンスへの同時接続の最大数を制御する MySQL パラメーターは 2 つあります。
| パラメーター | スコープ | 範囲 | 超過時のエラー |
|---|---|---|---|
max_connections |
すべてのデータベースアカウントの合計 | 1~200,000 | too many connections |
max_user_connections |
データベースアカウントごと | 10~200,000 | has more than 'max_user_connections' または has exceeded the 'max_user_connections' |
高い接続制限による影響
接続はメモリを消費します。max_connections を高く設定しすぎると、メモリ不足 (OOM) エラーが発生し、インスタンスが不安定になる可能性があります。安定性を維持するため、このパラメーターはご使用の インスタンスタイプ でサポートされている最大値に設定してください。
動作:実行値と open_files_limit
-
実行値には、運用保守用の予約済み接続が含まれます。
max_connectionsを変更した後、[パラメーター] ページの [実行値] 列には、指定した値よりも高い数値が表示されます。この値には、日常の運用保守用に予約された接続が含まれます。[基本情報] ページの [構成情報] セクションにある [最大接続数] フィールドには、指定した値が反映されます。 -
open_files_limitは再起動時にmax_connectionsを制限する可能性があります。インスタンスが再起動すると、max_connectionsの有効値が計算されます。その際、open_files_limitのデフォルト値は 655,350 です。max_connectionsを 654,540 より大きい値に設定する場合は、再起動後にmax_connectionsが制限されないように、コンソールでopen_files_limitの値も大きくしてください。open_files_limitは静的パラメーターであるため、変更を有効にするにはインスタンスを再起動する必要があります。min(open_files_limit - 810, user-defined value or instance type default + O&M reserved connections)
前提条件
開始する前に、以下のものがあることを確認してください。
-
ApsaraDB RDS for MySQL インスタンス
-
インスタンスパラメーターを変更するために必要な権限
コンソールでのパラメーターの変更
-
ApsaraDB RDS コンソール にログインします。上部メニューで、RDS インスタンスが存在するリージョンを選択します。対象のインスタンスを見つけ、その ID をクリックします。
-
ナビゲーションペインで、[パラメーター] をクリックします。
-
[変更可能なパラメータ] タブで、
max_user_connectionsまたはmax_connectionsを見つけます。[実行中の値] 列の
アイコンをクリックし、新しい値を入力して、[OK] をクリックします。 -
[変更を適用] をクリックします。ダイアログボックスで、変更が有効になるタイミングを選択し、[OK] をクリックします。
説明max_connectionsとmax_user_connectionsへの変更は即座に有効になります。再起動は不要です。
API オペレーションによるパラメーターの変更
ModifyParameter API を呼び出して、単一のリクエストで両方のパラメーターを変更します。
リクエスト例
次の例では、max_connections を 2000 に、max_user_connections を 500 に設定します。
http(s)://rds.aliyuncs.com/?Action=ModifyParameter
&DBInstanceId=rm-gs5v9xajylz45****
&Parameters={"max_connections":"2000","max_user_connections":"500"}
&<Common request parameters>
レスポンス例 (JSON)
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "542BB8D6-4268-45CC-A557-B03EFD7AB30A"
}
変更の確認
-
ApsaraDB RDS コンソール にログインします。上部メニューで、RDS インスタンスが存在するリージョンを選択します。対象のインスタンスを見つけ、その ID をクリックします。
-
ナビゲーションペインで、[パラメーター] をクリックします。
-
[変更履歴] タブをクリックし、新しい値がリストに表示されていることを確認します。

よくある質問
max_connections を変更した後、実行値が入力した値より大きい数値で表示されるのはなぜですか?
[実行値] には、インスタンスの安定性を保つために管理システムが日常の運用保守用に予約している接続が含まれるため、指定した値よりも高くなります。アプリケーションで利用可能な最大接続数は、[基本情報] ページの [構成情報] セクションにある [最大接続数] フィールドに表示されます。
インスタンスタイプをアップグレードしましたが、最大接続数が変わりませんでした。なぜですか?
インスタンスタイプをアップグレードしても、max_connections は自動的に調整されません。コンソールまたは API を通じて手動で値を変更してください。各インスタンスタイプのデフォルトの接続制限は、インスタンスタイプのリファレンス に記載されています。