最佳实践—如何选择升配与扩容

简介: 本文介绍了选择升配与扩容的逻辑和方法。

升配与增加节点

PolarDB-X中,扩容包含两种方式:

  1. 升配,指节点数不变,升级已有节点的CPU、内存、IOPS等规格。升配优先会选择原地升配,例如,将节点由4C升配为8C,如果当前节点所在宿主机有空余的CPU资源,则会通过调整参数的方式,将4C升配为8C,此种形式的升配耗时比较短,特别是数据节点的升配,不涉及数据的迁移;如果节点宿主机没有足够的资源做原地升配,则会进行节点的迁移,相对会消耗更多的时间。
    一般情况下,节点规格相对较小的时候,能更容易做到原地升配。相应的,降配操作可以做到原地降配。
  2. 增加节点,指节点的规格不变,增加新的CN与DN节点。增加DN节点会对数据做重新的负载均衡,因此涉及到数据的迁移,所耗时间与数据量成比例。相应的,减少节点的操作也会涉及到数据的迁移。可以看出,大多情况下,升配可以在原地完成,是一种更轻量的操作;增加节点一定涉及到数据迁移,是一个更复杂的操作。因此选择升配还是扩容,遵循以下原则:
    1. 业务突发流量、高峰期等引起的资源不足,优先选择升配,可以更快的解决性能瓶颈。同时,业务高峰过去之后,也更方便使用降配来节省资源。
    2. 日常开发、运维等过程中计划内的增加资源,优先选择增加节点,将单节点规格保持在相对较小的状态,便于应急情况下进行原地升配。
    3. 升配不会增加磁盘容量,磁盘容量是瓶颈的情况下,选择增加节点。

何时选择扩容

对于在线交易类业务,一般推荐日常负载不超过水位线的30%,以应付突发的一些流量(例如促销、甚至业务代码出现BUG等)。业务应该根据自己的业务特点(例如是否有周期性波动,是否有大促等)来对安全水位线进行调整。

CN的负载一般重点关注以下指标:

  1. CPU使用率
  2. 活跃线程数 (runing thread)
  3. 响应时间(逻辑RT、物理RT)

DN的负载一般重点关注以下指标:

  1. CPU使用率
  2. IOPS使用率
  3. 活跃链接数 (active session)

对于磁盘空间成为瓶颈的场景,考虑到增加节点需要消耗一定的时间,因此增加节点需要提前进行,一般推荐磁盘容量超过70%就应该进行增加节点的操作。

相关文章
|
移动开发 JavaScript 前端开发
Twaver-HTML5基础学习(6)告警元素(Alarm)闪烁效果
本文介绍了在Twaver HTML5中如何为告警元素(Alarm)创建闪烁效果,以提醒用户注意。文章通过示例代码展示了如何通过定时器间隔性地改变告警标签的颜色,从而实现闪烁提示效果。
217 1
Twaver-HTML5基础学习(6)告警元素(Alarm)闪烁效果
|
9月前
|
设计模式 Java 关系型数据库
设计模式:工厂方法模式(Factory Method)
工厂方法模式是一种创建型设计模式,通过将对象的创建延迟到子类实现解耦。其核心是抽象工厂声明工厂方法返回抽象产品,具体工厂重写该方法返回具体产品实例。适用于动态扩展产品类型、复杂创建逻辑和框架设计等场景,如日志记录器、数据库连接池等。优点包括符合开闭原则、解耦客户端与具体产品;缺点是可能增加类数量和复杂度。典型应用如Java集合框架、Spring BeanFactory等。
|
存储 缓存 编解码
阿里云服务器2核8G、4核16G、8核32G选择经济型、通用算力型和计算型实例参考
如果我们计划购买的云服务器配置是2核8G、4核16G、8核32G配置,在阿里云目前的活动中,可选的实例规格有经济型e、通用算力型u1、通用型g7、通用型g8y等几个实例规格可选,由于不同实例规格的性能和价格及适用场景不同,因此,有的新手用户可能不知道如何选择,本文为大家介绍在2核8G、4核16G、8核32G这三种配置下,经济型、通用算力型和通用型实例的选择问题,以供参考。
|
Java 关系型数据库 MySQL
【项目】手把手带你用 SpringBoot、Uniapp、MySql 开发一个简单的活动报名项目
【项目】手把手带你用 SpringBoot、Uniapp、MySql 开发一个简单的活动报名项目
934 1
|
机器学习/深度学习 算法 Unix
循环编码:时间序列中周期性特征的一种常用编码方式
循环编码是深度学习中处理周期性数据的一种技术,常用于时间序列预测。它将周期性特征(如小时、日、月)转换为网络可理解的形式,帮助模型识别周期性变化。传统的one-hot编码将时间特征转换为分类特征,而循环编码利用正弦和余弦转换,保持时间顺序信息。通过将时间戳转换为弧度并应用sin和cos,每个原始特征只映射到两个新特征,减少了特征数量。这种方法在神经网络中有效,但在树模型中可能需谨慎使用。
1673 5
|
缓存 数据安全/隐私保护 虚拟化
windows端口被占用,无法通过netstat找到进程,占用的端口又不能修改,该怎么办?
项目运行时服务器8080端口被占用,常规`netstat`命令找不到占用进程。解决方法包括:1) 强制关机重启释放端口;2) 使用`netstat -anobq`或Windows 10的`Get-NetTCPConnection` PowerShell命令查找BOUND状态的进程;3) 调整Windows动态端口范围,避免冲突。注意,强制关机可能影响数据安全。
5085 2
|
域名解析 缓存 网络协议
关于错误ERR_NAME_NOT_RESOLVED
如果以上方法都未能解决问题,你可能需要联系你的网络管理员或互联网服务提供商以获取更多帮助,或者考虑尝试在不同的网络环境中访问网站。
6679 0
|
搜索推荐 编译器
【C++11特性篇】lambda表达式玩法全解
【C++11特性篇】lambda表达式玩法全解
|
jenkins 应用服务中间件 持续交付
Jenkins+Gitlab+Nginx实现自动发布与回退基于tag版本的静态项目(解决重复构建问题)
Jenkins+Gitlab+Nginx实现自动发布与回退基于tag版本的静态项目(解决重复构建问题)
476 0
|
网络协议 安全
CAPWAP:无线接入点的控制和配置访问控制器 DHCP 选项
本文件受 BCP 78 和 IETF 信托关于 IETF 文件的法律规定的约束,该法律规定自本文件发布之日起生效 (http://trustee.ietf.org/license-info)。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。
389 0
CAPWAP:无线接入点的控制和配置访问控制器 DHCP 选项