このページでは、本番環境ワークロードで AlloyDB Omni を使用する際の一般的な設定について説明します。
巨大ページを有効にする
AlloyDB Omni は、PostgreSQL と同様に、巨大ページの使用をサポートしています。これを行うには、マシンで巨大ページを有効にする必要があります。また、データベース設定 huge_pages
も有効にする必要があります。
提供されたスクリプトを実行して、マシンで巨大ページを有効にします。
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
巨大なページを有効にするには、
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
を設定します。
sysctl
コマンドを使用して、ランタイム カーネル パラメータを構成します。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 サポートを対象としています。ただし、追加情報はデータベースの問題のデバッグに役立ちます。
内部ロギングを有効にするには、次の操作を行います。
データベース パラメータ
enable_alloydb_internal_log
をon
に設定します。ALTER SYSTEM SET enable_alloydb_internal_log=on;
AlloyDB Omni の設定の変更について詳しくは、AlloyDB Omni データベース パラメータを構成するをご覧ください。
変更を適用するために再起動します。
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
を構成します。
/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
次のようにサービスを有効にします。
sudo systemctl enable alloydb-setup-env.service