ディスク キャッシュを使用してデータベースのパフォーマンスを高速化する

ドキュメントのバージョンを選択してください。

このページでは、AlloyDB Omni でディスク キャッシュをプロビジョニング、設定、使用して、AlloyDB Omni のパフォーマンスを向上させる方法について説明します。

AlloyDB Omni ディスク キャッシュでは、標準の PostgreSQL インメモリ共有バッファに加えて、ソリッド ステート ドライブ(SSD)などの高速ストレージをバッファとして使用できます。ディスク キャッシュを使用すると、データ ディレクトリが低速なストレージにある AlloyDB Omni インストールでデータの取得が高速化されます。

PostgreSQL の共有バッファと同様に、AlloyDB Omni ディスク キャッシュは永続的ではありません。つまり、キャッシュに保存されたデータは再起動時に失われます。

デフォルトでは、AlloyDB Omni ディスク キャッシュはファイル システムから報告されたすべてのストレージを使用します。データ キャッシュに予約するストレージの量は、omni_disk_cache_file_size パラメータで定義できます。

AlloyDB Omni ディスク キャッシュを有効にする

ディスク キャッシュを有効にするには、次のすべてのサブセクションを完了します。

  1. ディスクをプロビジョニングしてファイル システムを作成する
  2. AlloyDB Omni で AlloyDB Omni ディスク キャッシュを有効にする

ディスクをプロビジョニングしてファイル システムを作成する

AlloyDB Omni ディスク キャッシュの場合、1 つのディスクまたは複数のディスクにファイル システムを作成してマウントします。また、mdadmlvm などのユーティリティを使用して、複数のディスクで容量をプールし、任意のファイル システムを使用することもできます。

次の手順では、NVMe SSD を使用して lvmext4 を使用する方法を説明します。

  1. 使用可能なすべての物理デバイスからボリューム グループを作成します。

    nvme_prefix="STORAGE_PREFIX"
    nvme_list=$(ls "$nvme_prefix"*)
    sudo vgcreate VOLUME_GROUP ${nvme_list}

    次のように置き換えます。

    • STORAGE_PREFIX: NVMe(Non-Volatile Memory Express)インターフェースを使用して仮想マシンにアタッチされるターゲット ローカル ディスクパスの接頭辞。たとえば、 Google Cloudでは、NVMe デバイスのパスは常に /dev/nvme0n で始まります。
    • VOLUME_GROUP: SSD が結合されるボリューム グループの名前。例: omni-disk-cache-volume
  2. 前の手順のボリューム グループの空き容量から論理ボリュームを作成するには、次のコマンドを使用します。

    sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP

    LOGICAL_VOLUME は、LVM によってパーティションとして扱われる論理ボリュームの名前に置き換えます。例: omni_disk_cache_device

  3. 論理ボリュームに ext4 ファイル システムを作成します。必要であれば、データの安全性に応じて他の ext4 オプションを指定することもできます。
    sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
  4. ホストマシンのマウント ポイントとして機能するディレクトリを作成し、ファイル システムをマウントするには、次のコマンドを使用します。

    sudo mkdir /OMNI_DISK_CACHE_DIRECTORY
    sudo mount /dev/VOLUME_GROUP/LOGICAL_VOLUME /OMNI_DISK_CACHE_DIRECTORY

    OMNI_DISK_CACHE_DIRECTORY は、マウント ポイントとして機能するディレクトリの名前またはディレクトリのパスに置き換えます。例: omni_disk_cache_directory

ディスク キャッシュ ディレクトリに権限を付与する

AlloyDB Omni のディスク キャッシュを有効にする前に、ディスク キャッシュ ディレクトリに対する完全アクセス権を付与する必要があります。権限を付与するには、次のコマンドを実行します。

sudo chown postgres:postgres /OMNI_DISK_CACHE_DIRECTORY
sudo chmod -R a+rw  /OMNI_DISK_CACHE_DIRECTORY

OMNI_DISK_CACHE_DIRECTORY は、ディスク キャッシュ ディレクトリのパスに置き換えます。

ディスク キャッシュを有効にする

データベースのディスク キャッシュを有効にするには、次の操作を行います。

  1. SUPERUSER としてデータベースに接続します。

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres
  2. omni_disk_cache_enabledomni_disk_cache_directory の Grand Unified Configuration(GUC)フラグを設定します。

    ALTER SYSTEM SET omni_disk_cache_enabled=on;
    ALTER SYSTEM SET omni_disk_cache_directory='/OMNI_DISK_CACHE_DIRECTORY';
    
  3. (省略可)デフォルトでは、AlloyDB Omni はファイル システムで使用可能なすべてのスペースを使用します。必要に応じて、omni_disk_cache_file_size GUC フラグを更新して、この設定をオーバーライドできます。

    ALTER SYSTEM SET omni_disk_cache_file_size=SIZE_IN_MB;
    

    SIZE_IN_MB は、ディスク キャッシュで使用するディスク容量(MB 単位)に置き換えます。

  4. AlloyDB Omni を再起動します。

    sudo systemctl restart alloydbomni18

ディスク キャッシュの構成を確認する

AlloyDB Omni ディスク キャッシュを有効にしたら、iotopiostat などの利用可能なユーティリティを使用してディスクへの読み取り / 書き込みアクティビティをモニタリングし、ディスク キャッシュにアクセスされていることを確認します。

また、AlloyDB Omni ディスク キャッシュが開いているかどうかを確認することもできます。

AlloyDB Omni のディスク キャッシュ構成を確認するには、次のコマンドを使用します。

sudo journalctl -u alloydbomni18 | grep "opened omni disk cache"

ディスク キャッシュが正しく構成されている場合、ログに Successfully opened omni disk cache ... メッセージが記録されます。

次のステップ