本番環境用に AlloyDB Omni を設定する

このページでは、本番環境ワークロードで AlloyDB Omni を使用する際の一般的な設定について説明します。

巨大ページを有効にする

AlloyDB Omni は、PostgreSQL と同様に、巨大ページの使用をサポートしています。これを行うには、マシンで巨大ページを有効にする必要があります。また、データベース設定 huge_pages も有効にする必要があります。

  1. 提供されたスクリプトを実行して、マシンで巨大ページを有効にします。

    Docker

    docker run --rm --privileged google/alloydbomni setup-host
    

    Docker

    docker run --rm --privileged google/alloydbomni setup-host
    

    Podman

    podman run --rm --privileged google/alloydbomni setup-host
    

    Podman

    podman run --rm --privileged google/alloydbomni setup-host
    
  2. 巨大なページを有効にするには、postgresql.conf に次の行を追加します。

      huge_pages=on
    

スワッピングを有効にする

オペレーティング システムでスワップを行うと、アクティブでないメモリページをランダムアクセス メモリ(RAM)とハードディスク間で移動し、アクティブなプロセス用の RAM スペースを解放することで、使用可能な物理メモリを拡張できます。AlloyDB Omni は、負荷が高く、追加のメモリが必要な場合にスワッピングを使用します。

システムで有効になっているスワップ領域の量を確認するには、次のコマンドを実行します。

   cat /proc/meminfo | grep SwapTotal

出力は次のようになります。

   SwapTotal:      165748732 kB

出力値が 0 の場合にオペレーティング システムでスワッピングを有効にするには、以下をご覧ください。

コアダンプを有効にする

AlloyDB Omni で回復不能なエラーが発生してクラッシュした場合は、分析用のコアダンプを取得すると役に立ちます。コアダンプは、クラッシュした時点での AlloyDB Omni プロセスのメモリのスナップショットです。

コアダンプを設定するには、次のように kernel.core_pattern を設定します。

  1. sysctl コマンドを使用して、ランタイム カーネル パラメータを構成します。
  2. kernel.core_pattern をすぐに設定するには、次を使用します。

    sysctl -w kernel.core_pattern="CORE_PATTERN"

    CORE_PATTERN は、コア ファイル名のパターン(%e-%t.core など)に置き換えます。

    コア ファイル名のパターンの詳細については、プロセスのコア ファイル名を設定する方法をご覧ください。

    systemd-coredump ハンドラを使用すると、coredump 設定をさらに構成できます。このツールは RHEL にデフォルトでインストールされています。Debian システムと Ubuntu システムでは、sudo apt install coredumpctl を実行してツールをインストールします。

    AlloyDB Omni を起動するときは、docker run コマンドで --ulimit=core:-1:-1 引数を渡してください。

    Docker

    docker run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --ulimit=core:-1:-1 \
    -p HOST_PORT:5432 -d google/alloydbomni
    

    Docker

    docker run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --ulimit=core:-1:-1 \
    -p HOST_PORT:5432 -d google/alloydbomni
    

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --ulimit=core:-1:-1 \
    -p HOST_PORT:5432 -d google/alloydbomni
    

    Podman

    podman run --name CONTAINER_NAME \
    -e POSTGRES_PASSWORD=NEW_PASSWORD \
    --ulimit=core:-1:-1 \
    -p HOST_PORT:5432 -d google/alloydbomni
    

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

    • CONTAINER_NAME: 新しい AlloyDB Omni コンテナの名前(例: my-omni-1)。
    • NEW_PASSWORD: パスワードの作成後に新しいコンテナの postgres ユーザーに割り当てられるパスワード。

内部ロギングを有効にする

AlloyDB Omni は、通常の PostgreSQL ログに加えて、より多くのメッセージを提供します。これらのメッセージは技術的な性質のものであるため、AlloyDB for PostgreSQL サポートを対象としています。ただし、追加情報はデータベースの問題のデバッグに役立ちます。

内部ロギングを有効にするには、次の操作を行います。

  1. データベース パラメータ enable_alloydb_internal_logon に設定します。

      ALTER SYSTEM SET enable_alloydb_internal_log=on;
    

    AlloyDB Omni の設定の変更について詳しくは、AlloyDB Omni データベース パラメータを構成するをご覧ください。

  2. 変更を適用するために再起動します。

    Docker

    docker restart CONTAINER_NAME
    

    Docker

    docker restart CONTAINER_NAME
    

    Podman

    podman restart CONTAINER_NAME
    

    Podman

    podman restart CONTAINER_NAME
    

ログファイル名やローテーション ポリシーの構成など、内部ロギングをさらにカスタマイズするには、PostgreSQL パラメータを使用します。

たとえば、log_directory パラメータはログファイルを保存するディレクトリを指定し、log_filename パラメータは個々のログファイルの名前を定義します。

AlloyDB Omni は、log_directory パラメータと log_filename パラメータを組み合わせて、内部ログを次のように保存します。

LOG_DIRECTORY/LOG_FILENAME.internal

オペレーションを自動的に実行するように systemd ユニットを設定する

AlloyDB Omni を専用サーバーで実行する場合は、サーバーの起動時に自動的に開始するように特定のオペレーションを構成できます。これを行う方法の 1 つとして、systemd ユニットを使用する方法があります。

たとえば、次の手順では、サーバーが起動するたびに巨大ページが自動的に有効になるように systemd を構成します。

  1. /etc/systemd/system/alloydb-setup-env.service にファイルを作成します。

      [Unit]
      Description=Setup huge pages for AlloyDB Omni
    
      [Service]
      Type=oneshot
    
      ExecStart=/usr/bin/docker run --rm --privileged google/alloydbomni setup-host
    
      [Install]
      WantedBy=multi-user.target
    
  2. 次のようにサービスを有効にします。

      sudo systemctl enable alloydb-setup-env.service

次のステップ