tencent cloud

负载均衡

动态与公告
产品动态
产品公告
产品简介
产品概述
产品优势
使用场景
技术原理
产品对比
使用约束
Service Regions and Service Providers
购买指南
计费概述
计费项
CLB 资源包
购买方式
欠费说明
产品属性选择
快速入门
域名化负载均衡快速入门
负载均衡快速入门
IPv6 负载均衡快速入门
CentOS 下部署 Nginx
CentOS 下部署 Java Web
操作指南
负载均衡实例
负载均衡监听器
后端服务器
健康检查
证书管理
日志管理
监控告警
访问管理
传统型负载均衡
实践教程
部署证书到负载均衡(双向认证)
负载均衡开启 Gzip 配置及检测方法说明
HTTPS 转发配置入门指南
如何获取客户端真实 IP
负载均衡配置监控告警最佳实践
产品高可用说明
均衡算法选择与权重配置示例
配置 WAF 对负载均衡的监听域名进行 Web 安全防护
配置 IAP 对负载均衡的域名和路径的web访问进行身份验证
配置 IAP 对负载均衡的域名和路径的程序化访问进行身份验证
运维指南
客户端 timewait 过多解决方案
负载均衡HTTPS服务性能测试
压力测试常见问题
CLB 证书操作权限问题
故障处理
UDP 健康检查出现异常
API 文档
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
常见问题
计费相关
负载均衡配置相关
健康检查异常排查
HTTPS 相关
WS/WSS 协议支持相关
HTTP/2 协议支持相关
默认域名阻断提示
服务等级协议
联系我们
词汇表
文档负载均衡实践教程均衡算法选择与权重配置示例

均衡算法选择与权重配置示例

PDF
聚焦模式
字号
最后更新时间: 2024-01-04 17:08:07

负载均衡算法比较分析

加权轮询算法 Weighted Round-Robin Scheduling

加权轮询算法是以轮叫的方式、依次请求调度不同的服务器。加权轮询调度算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,按权值的高低和轮询方式分配请求到各服务器。加权轮询算法根据新建连接数来调度,权值高的服务器先收到连接,权重值越高被轮询到的次数(概率)也越高,相同权值的服务器处理相同数目的连接数。
优势:简洁实用,无需记录当前所有连接的状态,是一种无状态调度。
劣势:相对简单,在请求服务时间变化较大或每个请求消耗时间不一致的情况下,容易导致服务器间的负载不平衡。
适用场景:当每个请求所占用的后端时间基本相同时,负载情况最好。常用于短连接服务,例如 HTTP 等。
用户推荐:已知每个请求所占用后端时间基本相同、后端服务器处理的请求类型相同或者相似时,推荐您选择加权轮询的方式。请求时间相差较小时,也推荐您使用加权轮询的方式,因为该实现方式消耗小,无需遍历,效率较高。

加权最小连接数 Weighted Least-Connection Scheduling

原理 在实际情况中,客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间的延伸,如果采用简单的轮询或随机均衡算法,每一台服务器上的连接进程数目可能会产生极大的不同,这样实际上并没有达到真正的负载均衡。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来评估服务器的负载情况。与轮询调度算法相反。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。权重最少连接数调度算法是在最少连接数调度算法的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求,是在最少连接数调度算法的基础上的改进。
1.1 假设各台 RS 的权值依次为 Wi(i=1…n),当前连接数依次为 Ci(i=1…n),依次选取 Ci/Wi 值为最小的 RS 作为下一个分配的 RS。
1.2 若存在 Ci/Wi 相同的 RS,则这些 RS 再使用加权轮询的方式调度。
优势 此种均衡算法适合长时处理的请求服务,如 FTP 等应用。
劣势 由于接口限制,目前最小连接数和会话保持功能不能同时开启。
适用场景 每个请求所占用的后端时间相差较大的场景。常用于长连接服务。
用户推荐 如果用户需要处理不同的请求,且请求所占用后端时间相差较大,如3ms和3s这种数量级的差距时,推荐使用加权最小连接数算法实现负载均衡。

源地址散列调度算法 ip_hash

原理 根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
优势 ip_hash 可以实现部分会话保持的效果,能够记住源 IP,使某一 client 请求通过 hash 表一直映射在同一台 rs 上。因此在不支持会话保持的场景可以使用 ip_hash 进行调度。
用户推荐 将请求的源地址进行hash运算,并结合后端的服务器的权重派发请求至某匹配的服务器,这可以使得同一个客户端 IP的请求始终被派发至某特定的服务器。该方式适合负载均衡无 cookie 功能的 TCP 协议。

均衡算法选取及权重配置示例

在负载均衡即将发布的新功能中,七层转发将支持最小连接数的均衡方式,为了让用户在不同场景下,能够让 RS 集群稳定的承接业务,因此我们给出几个负载均衡选择与权重配置的实例供用户进行参考。
场景1 设有3台配置相同(CPU / 内存)的 RS,由于性能一致,用户可以将 RS 权重都设置为10。设现在每台 RS 与 client 端建立了100个 TCP 连接,此时新增1台 RS。在此场景下,推荐用户使用最小连接数的均衡方式,这种配置能快速的让第四台 RS 的负载提升,降低另外3台 RS 的压力。
场景2 设用户首次接触云服务,且建站时间不长,网站负载较低,则建议购买相同配置的 RS,因此 RS 都是无差别的接入层服务器。在此场景下,用户可以将 RS 权重都设为10,采用加权轮询的均衡方式进行流量分发。
场景3 用户有5台服务器,用于承载简单的静态网站访问,且5台服务器的计算能力的比例为 9:3:3:3:1(按 CPU、内存换算)。在此场景下,用户可以依次将 RS 权重比例设置为90,30,30,30,10,由于静态网站访问大多数是短连接请求,因此可以采用加权轮询的均衡方式,让 CLB 按 RS 的性能比例分配请求。
场景4 某用户有10台 RS 用于承担海量的 Web 访问请求,且不希望多购置 RS 增加支出。 某台 RS 经常会因为负载过高,导致服务器重启。在此场景下,建议用户根据 RS 的性能进行相应的权重设置,给负载过高的 RS 设置较小的权值。除此之外,可以采用最小连接数的负载均衡方式,将请求分配到活跃连接数较少的 RS 上,从而解决某台 RS 负载过高的问题。
场景5 某用户有3台 RS 用于处理若干长连接请求,且这3台服务器的计算能力比例为3:1:1(按 CPU、内存换算)。 此时性能最好的服务器处理请求较多,用户不希望过载此服务器,希望能够将新的请求分配到空闲服务器上。在此场景下,可以采用最小连接数的均衡方式,并适当降低繁忙服务器的权重,便于 CLB 将请求分配到活跃数较少的 RS 上,实现负载均衡。
场景6 某用户希望后续客户端的请求可以分配到同一服务器上。而采用加权轮询或加权最小连接数的方式,不能保证相同客户端的请求被分到固定某台服务器上去。为了配合客户特定应用程序服务器的需求,保证客户端的会话具有“粘性”或是“持续性”,在此场景下,我们可以采用 ip_hash 的均衡方式进行流量分发。此方法可以确保来自同一客户端的请求总被定向分发到同一 RS 上去。(服务器数量变化或是该服务器不可用时除外)

权重置为0与解绑 RS 的区别

权重置为0:TCP 监听器存量连接继续转发,UDP 监听器相同五元组的继续转发,HTTP/HTTPS 监听器存量连接继续转发。TCP、UDP、HTTP/HTTPS 监听器新增连接不会再转发到权重为 0 的 RS 上。
解绑 RS:TCP/UDP 监听器存量连接立即停止转发,HTTP/HTTPS 监听器存量连接继续转发,存量连接转发完毕之后断开与 RS 的连接。

相关文档

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈