10.2. データベース接続プール
Red Hat Quay は、すべてが同じコンテナー内で実行する多くの異なるプロセスで構成されています。これらのプロセスの多くは、データベースと連動しています。
データベース接続プールはデフォルトで有効になっており、データベースと対話する各プロセスには接続プールが含まれます。これらのプロセスごとのコネクションプールは、最大 20 個の接続を維持するように設定されています。高負荷時には、Red Hat Quay コンテナー内のすべてのプロセスの接続プールを満たすことが可能です。特定のデプロイメントおよび負荷では、Red Hat Quay が設定されたデータベースの最大接続数を超えないようにするための分析が必要になる場合があります。
時間が経つと、接続プールはアイドル状態の接続を解放します。すべての接続をすぐに解除するには、Red Hat Quay の再起動が必要です。
変数 | 型 | 説明 |
---|---|---|
DB_CONNECTION_POOLING | String |
データベース接続プールを有効にするか無効にするかを指定します。デフォルトは true です。使用可能な値は |
データベース接続プーリングが有効な場合は、接続プールの最大サイズを変更することができます。これは、以下の config.yaml
オプションを使用して実行できます。
データベース接続プールの例
# ... DB_CONNECTION_ARGS: max_connections: 10 # ...
# ...
DB_CONNECTION_ARGS:
max_connections: 10
# ...
10.2.1. スタンドアロンデプロイメントでのデータベースプールの無効化
スタンドアロンの Red Hat Quay デプロイメントの場合、デプロイメントの開始時にデータベース接続プールをオフに切り替えることができます。以下に例を示します。
sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ -e DB_CONNECTION_POOLING=false
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \
--name=quay \
-v $QUAY/config:/conf/stack:Z \
-v $QUAY/storage:/datastorage:Z \
-e DB_CONNECTION_POOLING=false
registry.redhat.io/quay/quay-rhel8:v3.12.1
10.2.2. OpenShift Container Platform での Red Hat Quay のデータベースプールの無効化
Red Hat Quay on OpenShift Container Platform では、QuayRegistry
カスタムリソース定義 (CRD) を変更することでデータベース接続プールを設定できます。以下に例を示します。
QuayRegistry CRD の例
spec: components: - kind: quay managed: true overrides: env: - name: DB_CONNECTION_POOLING value: "false"
spec:
components:
- kind: quay
managed: true
overrides:
env:
- name: DB_CONNECTION_POOLING
value: "false"