升配与增加节点
PolarDB-X中,扩容包含两种方式:
- 升配,指节点数不变,升级已有节点的CPU、内存、IOPS等规格。升配优先会选择原地升配,例如,将节点由4C升配为8C,如果当前节点所在宿主机有空余的CPU资源,则会通过调整参数的方式,将4C升配为8C,此种形式的升配耗时比较短,特别是数据节点的升配,不涉及数据的迁移;如果节点宿主机没有足够的资源做原地升配,则会进行节点的迁移,相对会消耗更多的时间。
一般情况下,节点规格相对较小的时候,能更容易做到原地升配。相应的,降配操作可以做到原地降配。 - 增加节点,指节点的规格不变,增加新的CN与DN节点。增加DN节点会对数据做重新的负载均衡,因此涉及到数据的迁移,所耗时间与数据量成比例。相应的,减少节点的操作也会涉及到数据的迁移。可以看出,大多情况下,升配可以在原地完成,是一种更轻量的操作;增加节点一定涉及到数据迁移,是一个更复杂的操作。因此选择升配还是扩容,遵循以下原则:
- 业务突发流量、高峰期等引起的资源不足,优先选择升配,可以更快的解决性能瓶颈。同时,业务高峰过去之后,也更方便使用降配来节省资源。
- 日常开发、运维等过程中计划内的增加资源,优先选择增加节点,将单节点规格保持在相对较小的状态,便于应急情况下进行原地升配。
- 升配不会增加磁盘容量,磁盘容量是瓶颈的情况下,选择增加节点。
何时选择扩容
对于在线交易类业务,一般推荐日常负载不超过水位线的30%,以应付突发的一些流量(例如促销、甚至业务代码出现BUG等)。业务应该根据自己的业务特点(例如是否有周期性波动,是否有大促等)来对安全水位线进行调整。
CN的负载一般重点关注以下指标:
- CPU使用率
- 活跃线程数 (runing thread)
- 响应时间(逻辑RT、物理RT)
DN的负载一般重点关注以下指标:
- CPU使用率
- IOPS使用率
- 活跃链接数 (active session)
对于磁盘空间成为瓶颈的场景,考虑到增加节点需要消耗一定的时间,因此增加节点需要提前进行,一般推荐磁盘容量超过70%就应该进行增加节点的操作。