管理 Amazon Aurora PostgreSQL
下文将介绍如何管理 Amazon Aurora PostgreSQL 数据库集群的性能和扩缩。还包括有关其他维护任务的信息。
主题
扩展 Aurora PostgreSQL 数据库实例
您可通过两种方式扩展 Aurora PostgreSQL 数据库实例,即实例扩展和读取扩展。有关读取扩展的更多信息,请参阅读取扩展。
您可以修改数据库集群中的每个数据库实例的数据库实例类,以扩展 Aurora PostgreSQL 数据库集群。Aurora PostgreSQL 支持多种针对 Aurora 优化的数据库实例类。不要将 db.t2 或 db.t3 实例类用于大小超过 40 TB 的较大 Aurora 集群。
扩缩不会即时完成。可能需要 15 分钟或更长时间才能完成对其他数据库实例类的更改。如果使用此方法修改数据库实例类,我们建议您在下一个计划的维护时段内(而不是立即)应用更改,从而避免影响用户。
作为直接修改数据库实例类的替代方法,您可以使用 Amazon Aurora 的高可用性功能最大限度地减少停机时间。首先,将 Aurora 副本添加到集群中。创建副本时,选择要用于集群的数据库实例类大小。Aurora 副本与集群同步后,您可以故障转移至新添加的副本。要了解更多信息,请参阅Aurora 副本和Amazon Aurora PostgreSQL 的快速故障转移。
有关 Aurora PostgreSQL 支持的数据库实例类的详细规格,请参阅数据库实例类支持的数据库引擎。
至 Aurora PostgreSQL 数据库实例的最大连接数
Aurora 数据库集群根据数据库实例类及其可用内存分配资源。Aurora PostgreSQL 数据库实例允许的最大连接数量由该数据库实例的参数组中指定的 max_connections
参数值确定。
尝试更改 max_connections
参数设置之前,请注意以下事项。
-
如果
max_connections
值太低,当客户端尝试连接时,Aurora PostgreSQL 数据库实例可能没有足够的可用连接。 -
如果
max_connections
值超过了实际需要的连接数,未使用的连接可能会导致性能降低。
max_connections
参数的理想设置是既能支持应用程序所需的所有客户端连接,又不会有太多未使用的连接,外加至少 3 个支持 Amazon 自动化的连接。
Aurora PostgreSQL 默认数据库参数组中 max_connections
的值设置为以下 Aurora PostgreSQL LEAST
函数得出的两个值中较低的一个:
LEAST({DBInstanceClassMemory/9531392},5000)
即便无法更改默认参数组中的值,您仍可创建自己的自定义数据库集群参数组并修改 Aurora PostgreSQL 数据库集群加以使用。如果执行此操作,请确保在应用自定义参数组后重启数据库集群。有关更多信息,请参阅 Amazon Aurora PostgreSQL 参数 和 创建数据库集群参数组。要详细了解 Aurora 数据库集群和数据库参数组,请参阅 使用参数组。
下表列出了可与 Aurora PostgreSQL 搭配使用的每个数据库实例类的 max_connections
应该使用的最高值。
实例类 | max_connections 默认值 |
---|---|
db.x2g.16xlarge | 5000 |
db.x2g.12xlarge | 5000 |
db.x2g.8xlarge | 5000 |
db.x2g.4xlarge | 5000 |
db.x2g.2xlarge | 5000 |
db.x2g.xlarge | 5000 |
db.x2g.large | 3479 |
db.r6g.16xlarge | 5000 |
db.r6g.12xlarge | 5000 |
db.r6g.8xlarge | 5000 |
db.r6g.4xlarge | 5000 |
db.r6g.2xlarge | 5000 |
db.r6g.xlarge | 3479 |
db.r6g.large | 1722 |
db.r5.24xlarge | 5000 |
db.r5.16xlarge | 5000 |
db.r5.12xlarge | 5000 |
db.r5.8xlarge | 5000 |
db.r5.4xlarge | 5000 |
db.r5.2xlarge | 5000 |
db.r5.xlarge | 3300 |
db.r5.large | 1600 |
db.r4.16xlarge | 5000 |
db.r4.8xlarge | 5000 |
db.r4.4xlarge | 5000 |
db.r4.2xlarge | 5000 |
db.r4.xlarge | 3200 |
db.r4.large | 1600 |
db.t4g.large | 844 |
db.t4g.medium | 405 |
db.t3.large | 844 |
db.t3.medium | 420 |
如果应用程序需要的连接数超过为数据库实例类列出的数量,请考虑以下替代方案。
-
选择具有更大内存的数据库实例类。如果对支持 Aurora PostgreSQL 数据库集群的数据库实例类的连接要求太高,则可能导致数据库过载并降低性能。有关 Aurora PostgreSQL 数据库实例类的列表,请参阅 数据库实例类支持的数据库引擎。有关每个数据库实例类的内存量,请参阅 适用于 Aurora 的数据库实例类的硬件规格。
将 RDS Proxy 与 Aurora PostgreSQL 数据库集群搭配使用来进行池连接。有关更多信息,请参阅 使用 Amazon RDS Proxy。
Aurora PostgreSQL 的临时存储限制
Aurora PostgreSQL 将表和索引储存在 Aurora 存储子系统中。Aurora PostgreSQL 对于非持久性临时文件使用单独的临时存储。这包括用于在查询处理过程对大型数据集进行排序或者用于索引构建操作等用途的文件。有关存储的更多信息,请参阅 Amazon Aurora 存储和可靠性。
下表显示了每个 Aurora PostgreSQL 数据库实例类可用的最大临时存储空间。
数据库实例类 | 最大可用临时存储空间 (GiB) |
---|---|
db-x2g-16xlarge | 1829 |
db-x2g-12xlarge | 1606 |
db-x2g-8xlarge | 1071 |
db-x2g-4xlarge | 535 |
db-x2g-2xlarge | 268 |
db-x2g-xlarge | 134 |
db-x2g-large | 67 |
db.r6g.16xlarge | 1008 |
db.r6g.12xlarge | 756 |
db.r6g.8xlarge | 504 |
db.r6g.4xlarge | 252 |
db.r6g.2xlarge | 126 |
db.r6g.xlarge | 63 |
db.r6g.large | 32 |
db.r5.24xlarge | 1500 |
db.r5.16xlarge | 1008 |
db.r5.12xlarge | 748 |
db.r5.8xlarge | 504 |
db.r5.4xlarge | 249 |
db.r5.2xlarge | 124 |
db.r5.xlarge | 62 |
db.r5.large | 31 |
db.r4.16xlarge | 960 |
db.r4.8xlarge | 480 |
db.r4.4xlarge | 240 |
db.r4.2xlarge | 120 |
db.r4.xlarge | 60 |
db.r4.large | 30 |
db.t4g.large | 16.5 |
db.t4g.medium | 8.13 |
db.t3.large | 16 |
db.t3.medium | 7.5 |
您可以使用 FreeLocalStorage
CloudWatch 指标监控数据库实例可用的临时存储,如 Amazon Aurora 的 Amazon CloudWatch 指标中所述。
对于某些工作负载,您可以通过为执行操作的进程分配更多内存来减少临时存储量。要增加操作可用的内存,请增加 work_mem