ストレージ問題のトラブルシューティング
ソートまたはインデックス作成操作に必要な作業メモリ量が work_mem
パラメータによって割り当てられた量を超える場合、Aurora PostgreSQL はこの超過したデータを一時ディスクファイルに書き込みます。Aurora PostgreSQL は、データを書き込む際、エラーやメッセージログを保管する場合に使用するのと同じストレージ領域、つまりローカルストレージを使用します。Aurora PostgreSQL DB クラスターの各インスタンスには、使用できるローカルストレージの量が指定されています。ストレージの量は DB インスタンスクラスに基づいています。ローカルストレージの量を増やすには、より大きな DB インスタンスクラスを使用するようにインスタンスを変更する必要があります。DB インスタンスクラスの仕様については、「Aurora 用の DB インスタンスクラスのハードウェア仕様」を参照してください。
Aurora PostgreSQL DB クラスターのローカルストレージスペースをモニタリングするには、Amazon CloudWatch メトリックスで FreeLocalStorage
を監視します。このメトリクスでは、 Aurora DB クラスターの各 DB インスタンスの一時テーブルとログで使用できるストレージの量が報告されます。詳細については、「Amazon CloudWatch を使用した Amazon Aurora メトリクスのモニタリング」を参照してください。
ソート、インデックス作成、およびグループ化の操作は作業メモリで開始されますが、多くの場合、ローカルストレージにオフロードされる必要があります。このような操作が原因で Aurora PostgreSQL DB クラスターのローカルストレージが不足した場合、次のいずれかのアクションを実行することで問題を解決できます。
作業メモリの量を増やします。これにより、ローカルストレージを使用する必要が少なくなります。デフォルトでは、PostgreSQL はソート、グループ化、インデックス作成の各操作に 4 MB を割り当てます。Aurora PostgreSQL DB クラスターのライターインスタンスの現在の作業メモリを確認するには、
psql
を使用してインスタンスに接続し、次のコマンドを実行します。postgres=>
SHOW work_mem;work_mem ---------- 4MB (1 row)
次のように、ソート、グループ化、その他の操作の前のセッションレベルの作業メモリを増やすことができます。
SET work_mem TO '1 GB';
作業メモリの詳細については、PostgreSQL ドキュメントの「リソース消費
」を参照してください。 ログの保存期間を変更して、ログの保存期間を短くします。この方法の詳細は、「Aurora PostgreSQL データベースログファイル」を参照してください。
Aurora PostgreSQL DB クラスターが 40 TB より大きい場合は、db.t2、db.t3、または db.t4g インスタンスクラスを使用しないでください。T DB インスタンスクラスは、開発サーバーおよびテストサーバー、またはその他の本稼働以外のサーバーにのみ使用することをお勧めします。詳細については、「DB インスタンスクラスタイプ」を参照してください。