'Heroku Data Labs: Postgres アドオンの WAL 圧縮'
最終更新日 2023年05月02日(火)
Table of Contents
ログ先行書き込み (WAL) 圧縮は、Postgres データベースのログ先行書き込みのサイズを縮小する Postgres データベースの機能です。この圧縮によって、CPU 負荷の増加と引き替えにデータベースの I/O 負荷が減少します。Heroku Data Labs を使用して、Heroku Postgres アドオンでこの機能を有効化することができます。
ご使用のデータベースでの WAL 圧縮のメリットは、データベースの使用方法、使用されているディスク領域の量、データベースのフォロワーの有無などのさまざまな要因に依存します。WAL 圧縮が適切かどうかを理解するために、データベースを監視するようにしてください。
Heroku Data Labs を通じて追加された機能は実験的であり、変更される場合があります。
前提条件
- Standard、Premium、Private、または Shield 層の Heroku Postgres データベース
- Heroku Data CLI プラグインがインストールされている
WAL 圧縮を有効にする
$ heroku data:labs:enable wal-compression --addon=YOUR_ADDON_NAME
Enabling wal-compression on YOUR_ADDON_NAME...... done
WAL 圧縮機能を有効にすると、Heroku Postgres データベース設定が更新され、wal_compression
が on
に、max_wal_size
が 10 GB に設定されます。
WAL 圧縮を無効にする
$ heroku data:labs:disable wal-compression --addon=YOUR_ADDON_NAME
Disabling wal-compression on YOUR_ADDON_NAME...... done
WAL 圧縮機能を無効にすると、Heroku Postgres データベース設定が更新され、wal_compression
が off
に、max_wal_size
がデフォルトの 2 GB に設定されます。
これらの変更を適用するには、時間がかかります。以前の設定がまだ進行中であることを示すエラーが出た場合は、後で再試行してください。
ステータスの確認
$ heroku data:labs:list --addon=YOUR_ADDON_NAME
=== Experimental Features Available for YOUR_ADDON_NAME:
[+] wal-compression Write-ahead log compression on Heroku Postgres addons
ボックス内に緑色のプラスマークがある場合、アドオンで WAL 圧縮機能が有効化されていることを示し、ボックスが空白の場合は無効化されていることを示します。
データベースへの WAL 圧縮の影響
WAL 圧縮を有効にすると、データベースの wal-percentage-used メトリックを削減できます。このメトリックを 75% 未満に保つと、データベース接続制限のスロットリングを防ぎます。WAL 圧縮を有効にしても、このメトリックが高いままの場合、WAL 生成の削減のヒントを参照してください。
この機能を有効化することは、ほとんどのデータベースにとって有益ですが、一部のデータベースに不要な CPU 負荷をかける可能性があります。 ご使用のデータベースパフォーマンスを監視して、この機能を有効にする影響を調べてください。CPU 負荷が 1.0 未満のままであることを確認します。詳細は、「Heroku Postgres の監視」を参照してください。