

# Aurora PostgreSQL のメモリ管理が改善されました
<a name="AuroraPostgreSQL.BestPractices.memory.management"></a>

Aurora PostgreSQL に、さまざまなワークロードでデータベースのパフォーマンスと耐障害性を最適化する高度なメモリ管理機能が追加されました。これらの改善により、Aurora PostgreSQL はメモリ需要が高い期間でも一貫した可用性と応答性を維持できます。

この機能は、プロビジョンドインスタンスの次の Aurora PostgreSQL バージョンで使用でき、デフォルトで有効になっています。
+ 15.3 以降のすべてのマイナーバージョン
+ 14.8 以降のマイナーバージョン
+ 13.11 以降のマイナーバージョン
+ 12.15 以降のマイナーバージョン
+ 11.20 以降のマイナーバージョン

この機能は、Aurora Serverless インスタンスの次の Aurora PostgreSQL バージョンで使用でき、デフォルトで有効になっています。
+ 16.3 以降のすべてのマイナーバージョン
+ 15.7 以降のすべてのマイナーバージョン
+ 14.12 以降のマイナーバージョン
+ 13.15 以降のマイナーバージョン

 お客様のワークロードが使用可能な空きメモリをすべて使い切ると、オペレーティングシステムがリソースを保護するためにデータベースを再起動する可能性があり、その結果、データベースが一時的に使用できなくなる可能性があります。Aurora PostgreSQL の新しいメモリ管理の改善により、システムでメモリ負荷が高い場合に特定のトランザクションが事前にキャンセルされ、データベースの安定性を維持するうえで役立ちます。

メモリ管理の改善の主な特徴は次のとおりです。
+ システムが重大なメモリ負荷に近づいているときに、より多くのメモリを要求するデータベーストランザクションをキャンセルします。
+ すべての物理メモリを使い果たし、スワップを使い果たしそうになったとき、システムは重大なメモリ負荷にさらされていると言われます。このような状況では、DB インスタンスのメモリ負荷を直ちに軽減するために、メモリを要求するトランザクションはすべてキャンセルされます。
+ 重要な PostgreSQL ランチャーと自動バキュームワーカーなどのバックグラウンドワーカーは常に保護されています。

## メモリ管理パラメータの取り扱い
<a name="AuroraPostgreSQL.BestPractices.memory.management.configuring"></a>

**メモリ管理を有効にするには**  
この機能は、デフォルトでオンになっています。次の例に示すように、メモリ不足のためにトランザクションがキャンセルされると、エラーメッセージが表示されます。

```
ERROR: out of memory Detail: Failed on request of size 16777216.
```

**メモリ管理を無効にするには**  
この機能を無効にするには、psql を使用して Aurora PostgreSQL DB クラスターに接続し、以下で説明するようにパラメータ値に SET ステートメントを使用します。

**注記**  
メモリ管理を有効にしておくことをお勧めします。これにより、メモリの枯渇によりワークロードが引き起こすデータベースの再起動につながる可能性のある、潜在的なメモリ不足エラーを防ぐことができます。

次の表は、さまざまな Aurora PostgreSQL バージョンのメモリ管理機能を無効にする方法を示しています。


| Aurora PostgreSQL バージョン | パラメータ  | デフォルト  | セッションレベルでメモリ管理を無効にするコマンド | 
| --- | --- | --- | --- | 
| 11.20、11.21、12.15、12.16、13.11、13.12、14.8、14.9、15.3、15.4 | `rds.memory_allocation_guard` | `false` | `SET rds.memory_allocation_guard = true;` | 
| 12.17、13.13、14.10、15.5 以降のバージョン | `rds.enable_memory_management` | `true` | `SET rds.enable_memory_management = false;` | 

**注記**  
`rds.memory_allocation_guard` パラメータは、Aurora PostgreSQL 12.17、13.13、14.10、15.5 以降のバージョンで廃止されています。

DB クラスターパラメータグループでこれらのパラメータの値を設定すると、クエリはキャンセルされません。DB クラスターパラメータグループの詳細については、「[Amazon Aurora のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

## 制限
<a name="AuroraPostgreSQL.BestPractices.memory.management.limitations"></a>
+ この機能は、db.t3 medium インスタンスクラスではサポートされていません。