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

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

巨大ページを有効にする

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

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

    Docker

     docker 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

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

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

    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 ユーザーに割り当てられるパスワード。

オペレーションを自動的に実行するように 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

次のステップ