Aurora PostgreSQL のメモリ管理が改善されました
お客様のワークロードが DB インスタンスで使用可能な空きメモリを使い果たすと、オペレーティングシステムによってデータベースが再起動され、データベースが使用できなくなります。Aurora PostgreSQL では、メモリ管理機能が向上し、空きメモリ不足による安定性の問題やデータベースの再起動を未然に防ぐことができます。この改善は、以下のバージョンでデフォルトで利用できます。
15.3 以降の 15 バージョン
14.8 以降の 14 バージョン
13.11 以降の 13 バージョン
12.15 以降の 12 バージョン
11.20 以降の 11 バージョン
メモリ管理を改善するために、次の処理を行います。
システムが重大なメモリ負荷に近づいているときに、より多くのメモリを要求するデータベーストランザクションをキャンセルします。
すべての物理メモリを使い果たし、スワップを使い果たしそうになったとき、システムは重大なメモリ負荷にさらされていると言われます。このような状況では、DB インスタンスのメモリ負荷を直ちに軽減するために、メモリを要求するトランザクションはすべてキャンセルされます。
重要な PostgreSQL ランチャーと自動バキュームワーカーなどのバックグラウンドワーカーは常に保護されています。
メモリ管理パラメータの設定
メモリ管理を有効にするには
この機能は、デフォルトでオンになっています。次の例に示すように、メモリ不足のためにトランザクションがキャンセルされると、エラーメッセージが表示されます。
ERROR: out of memory Detail: Failed on request of size 16777216.
メモリ管理を無効にするには
この機能を無効にするには、psql を使用して Aurora PostgreSQL DB クラスターに接続し、以下で説明するようにパラメータ値に SET ステートメントを使用します。
Aurora PostgreSQL バージョン 11.21、12.16、13.12、14.9、15.4 以前のバージョンの場合:
postgres=>
SET rds.memory_allocation_guard = true;
パラメータグループでは、rds.memory_allocation_guard
パラメータのデフォルト値は false
に設定されます。
Aurora PostgreSQL 12.17、13.13、14.10、15.5 以降のバージョンの場合:
postgres=>
rds.enable_memory_management = false;
パラメータグループでは、rds.enable_memory_management
パラメータのデフォルト値は true
に設定されます。
DB クラスターパラメータグループでこれらのパラメータの値を設定すると、クエリはキャンセルされません。DB クラスターパラメータグループの詳細については、「Amazon Aurora のパラメータグループ」を参照してください。
これらの動的パラメータの値をセッションレベルで設定して、メモリ管理を改善するためにセッションを含めたり除外したりすることもできます。
注記
この機能をオフにするとメモリ不足エラーが発生し、システムのメモリ不足が原因でワークロードによってデータベースが再起動する可能性があるため、この機能をオフにすることはお勧めしません。