本文介绍了Serverless集群的常见问题。
Serverless集群常见问题
基础概念
Serverless集群的PCU是什么意思?
PCU是PolarDB Capacity Unit的缩写。1 PCU约等于1核2 GB内存的标准服务能力。PCU是PolarDB Serverless集群进行资源弹性的管理单位,单次弹性的最小PCU单位为0.5 PCU。
PolarDB Serverless集群的最大存储容量是多少?
Serverless集群的存储上限为500 TB。
PolarDB Serverless集群存在存储热备集群吗?
存在,可以在创建PolarDB Serverless集群的时候开启热备集群。
购买和使用
PolarDB Serverless集群如何计费?
Serverless集群为秒级计费,每次计费按照该时间段内使用的PCU均值进行计费。具体请参见Serverless费用说明。
弹性扩缩
PolarDB Serverless的弹性范围是多少?
单节点(RW或者RO节点)允许的最大弹性范围是1~32 PCU(约为32核64 GB)。集群RO节点数量最多允许增加15个。所以理论上整个集群的最大计算规格为32*16 = 512 PCU。Serverless集群的单节点弹性范围和RO节点数据可以通过控制台进行设置,具体请参见设置Serverless集群资源扩缩策略。
PolarDB Serverless集群的弹性时间是多久?
Serverless集群单节点的本机弹性时间在10秒以内(跨机弹性时间在30秒以内)。弹性时间分为三个部分:探测时间+决策时间+执行时间,其中探测时间为5秒,决策时间和执行时间分别在1秒以内。当Serverless集群的单节点达到配置的能力上限(例如配置单节点弹性范围为1~16 PCU,RW节点达到16 PCU的配置上限)且当前业务负载仍然高于集群的处理能力时,则Serverless集群自动增加RO节点(RO节点数量不超过用户的配置)。添加RO节点的时间为1分钟左右。当业务负载下降,RO节点空闲时,RO节点会被回收删除。为避免周期性负载下频繁增删RO节点,删除RO的决策时间为分钟级。
PolarDB Serverless集群触发弹升的指标是什么?
弹性扩展触发条件
纵向扩展(节点升配)
PolarDB主要监控主节点和只读节点的CPU使用率、内存使用率和其他内核层面指标。在监控周期内,当单节点出现如下三种情况中的任意一种时,通常会触发当前节点的纵向扩展:
CPU使用率高于预设阈值(默认值为80%)。
内存使用率高于特定阈值:
Serverless形态
扩容阈值
Serverless集群
90%
固定规格集群的Serverless功能
小于等于32 GB
90%
64 GB
92%
128 GB
96%
256 GB~512 GB
98%
其他内存规格
不支持纵向扩展。
只读节点的规格小于主节点规格的一半。
例如,当一台只读节点的规格为4 PCU,而主节点的规格为10 PCU时,就会触发这台只读节点资源的纵向扩展到不小于5 PCU的规格。
横向扩展(增加节点)
当集群中某个只读节点已经纵向扩展至设定上限,并且该只读节点仍然满足纵向扩展的触发条件(如CPU使用率高于自定义阈值),则会触发只读节点的横向扩展。
弹性收缩触发条件
纵向收缩(节点降配)
当单节点的CPU使用率低于自定义阈值(默认值为50%),且内存使用率低于特定阈值时,会触发该节点的资源收缩。内存阈值如下:
Serverless形态
收缩阈值
Serverless集群
80%
固定规格集群的Serverless功能
小于等于32 GB
80%
64 GB
86%
128 GB
90%
256 GB~512 GB
94%
其他内存规格
不支持纵向扩展,即无收缩阈值。
横向收缩(减少节点)
当集群中某个只读节点的CPU使用率低于15%,且其余只读节点的CPU使用率低于60%,并持续15分钟~30分钟时,会触发该节点的收缩。
说明为防止节点抖动,每次仅会横向收缩一个只读节点,并且连续收缩节点的静默期为15分钟~30分钟。
若您希望立即收缩所有只读节点,可以通过修改Serverless配置实现。将只读节点个数伸缩上限与只读节点个数伸缩下限均设置为0,会立即触发所有只读节点的收缩。
Serverless集群的最大连接数和最大IOPS指会随着弹升而变化吗?
Serverless集群的最大连接数为100,000,最大IOPS为84,000。
固定规格集群开启Serverless功能后,集群的最大连接数为100,000,可弹升IOPS与设置的Serverless单节点资源弹升上限成正比。
PolarDB Serverless集群的PCU越大,扩缩步长相对越大是什么意思?
当Serverless集群的业务负载突增时,Serverless集群的节点并不是一次性弹升到对应规格,而是不断地单次弹升逐步接近当前负载的相应规格。单次弹升的最小步长是0.5 PCU。Serverless集群为了能更快地适应当前业务流量,下次弹升的步长会根据当前的PCU自动进行调整,扩大调整的步长。
PolarDB Serverless集群在1 PCU时,为什么内存使用率是100%?
因为Serverless集群的单节点最大规格为32 PCU。部分内核模块为了能从1 PCU快速弹升而预留了部分内存空间。所以PolarDB控制台监控会显示1 PCU的内存使用为100%。
单节点PCU资源弹升上下限可以设置成一样吗?
可以。如果单节点PCU资源弹升上下限设置成一样,当您的业务负载飙升时,Serverless集群就不会随业务负载变化而弹升了,可能会导致您的业务受损。建议您合理设置单节点PCU资源的弹升范围。
Serverless横向扩展出来的只读节点负载并不高,为什么不自动横向收缩(释放)该节点?
横向收缩(减少节点)的触发条件是:当集群中某个只读节点的CPU使用率低于15%,且其余只读节点的CPU使用率低于60%,并持续15分钟~30分钟时,会触发该节点的收缩。
为防止节点抖动,每次仅会横向收缩一个只读节点,并且连续收缩节点的静默期为15分钟~30分钟。
若您希望立即收缩所有只读节点,可以通过修改Serverless配置实现。将只读节点个数伸缩下限设置为0,会立即触发所有只读节点的收缩。
跨机弹升
如果本地弹升资源不足,无法继续进行纵向弹升,则将触发跨机弹升机制,集群将被迁移至资源更为充足的机器上。跨机弹升能力默认开启,如果不需要开启,请提交工单联系我们为您关闭该功能。
业务影响
计算节点迁移一般在5-10分钟内完成。
主节点(读写节点)迁移过程中会在30秒~90秒内有1~2次左右的闪断。如果集群开启了无感秒切,且未开启Binlog,主节点(读写节点)迁移基本无闪断。
只读节点迁移过程中,对写入操作无影响。
其他
PolarDB Serverless集群的事务强一致性指的是什么?
事务强一致性是为了解决RO节点上的读事务和RW节点保持协调,进而保证RO节点上读取的数据符合整个集群事务的ACID属性。
在固定规格集群中,RO数量固定,业务可基于集群地址对应的拓扑,配置合适的一致性策略。
在Serverless集群中,默认仅包含一个RW节点,RO节点根据负载自动扩缩容,无法预期是否发生读写分离,因此建议始终配置为全局一致性(高性能模式)。
普通版本的PolarDB集群如何迁移到Serverless集群?
普通版本的PolarDB集群迁移到Serverless集群需要通过DTS工具进行迁移。
普通的PolarDB集群(包年包月、按量付费)是否可以升级为Serverless集群?
支持在普通的PolarDB集群(包年包月、按量付费)上开启Serverlesss功能,即固定规格集群的Serverless功能。具体操作请参见开启固定规格集群的Serverless功能。
PolarDB MySQL版开启固定规格集群的Serverless功能会有集群闪断的影响吗?
固定规格集群开启Serverless功能时,如果当前主机资源紧张,有一定概率会发生集群迁移(迁移至空闲主机),所以建议您在业务低峰期开启Serverless功能。详情请参见管理固定规格集群的Serverless功能。
若您使用主地址连接数据库,在集群迁移时会有5-10秒的闪断。
若您使用集群地址连接数据库,在集群迁移时不会有闪断。建议您使用集群地址连接数据库,并且确保无感秒切能力已生效。更多信息,请参见连接地址(主地址、集群地址和自定义地址)和无感秒切。