このページでは、本番環境ワークロードで AlloyDB Omni を使用する際の一般的な設定について説明します。
巨大ページを有効にする
AlloyDB Omni は、PostgreSQL と同様に、巨大ページの使用をサポートしています。これを行うには、マシンで巨大ページを有効にする必要があります。また、データベース設定 huge_pages
も有効にする必要があります。
提供されたスクリプトを実行して、マシンで巨大ページを有効にします。
Docker
docker 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
次のように置き換えます。
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
を構成します。
/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