1.3.4. 调整数据库连接池

Red Hat Quay 由很多不同的进程组成,它们都在同一个容器内运行。很多进程与数据库交互。

使用 DB_CONNECTION_POOLING 参数时,与数据库交互的每个进程都将包含一个连接池。这些每个进程连接池被配置为保持最多 20 个连接。当负载过重时,可以在 Red Hat Quay 容器中为每个进程填充连接池。在某些部署和负载下,这可能需要分析以确保 Red Hat Quay 不超过数据库配置的最大连接数。

随着时间的推移,连接池将释放闲置连接。要立即释放所有连接,必须重启 Red Hat Quay。

可以通过将 DB_CONNECTION_POOLING 设置为 truefalse 来切换数据库连接池。例如:

---
DB_CONNECTION_POOLING: true
---

启用 DB_CONNECTION_POOLING 时,您可以使用 config.yaml 中的 DB_CONNECTION_ARGS 更改连接池的最大大小。例如:

---
DB_CONNECTION_ARGS:
  max_connections: 10
---

1.3.4.1. 数据库连接参数

您可以在 config.yaml 文件中自定义 Red Hat Quay 数据库连接设置。它们取决于您的部署的数据库驱动程序,如 Postgres 的 psycopg2,以及 MySQL 的 pymysql。您还可以传递 Peewee 的连接池机制使用的参数。例如:

---
DB_CONNECTION_ARGS:
  max_connections: n  # Max Connection Pool size. (Connection Pooling only)
  timeout: n  # Time to hold on to connections. (Connection Pooling only)
  stale_timeout: n  # Number of seconds to block when the pool is full. (Connection Pooling only)
---