为什么SLB QPS没有达到上限却响应503状态码?

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

很多用户使用SLB 7层监听的时候发现请求没有到达后端,SLB直接响应了503状态码。

什么是503状态码?

503状态码的定义可以参考rfc7231,如下图所示翻译过来就是503意味着服务器过载导致无法响应请求,在SLB上就相当于已经达到了SLB的规格上限,导致SLB无法继续处理请求所以直接响应503状态码给客户端。
123

为何控制台看QPS远没达到规格上限却也返回503?

SLB性能保障型规格,这里以slb.s1.small 规格举例,此规格的qps是1000,但是使用的时候SLB控制台的qps明明没到1000为何也会有503呢?
因为SLB的监控数据的最小单位是1分钟,也就是1分钟才会统计一个数据点,所以控制台显示的qps其实是1分钟内的平均值,是1分钟内的所有请求除以60秒计算出来的,这跟真实qps是有所差别的,因为这样计算的话会有削峰填谷的效果,比如真实业务里面1分钟内某几秒的请求量特别大,其他时间请求量比较小,一平均之后qps就会看上去没有多大,但是slb是根据秒级的qps限制的,所以如果几秒钟超过qps上限那就会出现503状态码。

下面通过一个简单的测试进一步描述下控制台显示qps的逻辑。
通过AB压测5000请求并发5,通过下图可以看到281,这里的qps计算方法是:总的请求5000/总请求时间17.785秒=281 QPS
1234
在控制台查看此时qps只与79,控制台计算方法是:5000请求/60秒 =83 跟下列图标是比较接近的。
123

如何判断秒级qps超过规格?

那如果是SLB返回了503状态码,怎么确定秒级qps呢。 可以开通SLB 7层访问日志。开通以后如下图所示35分0秒到35分59秒一共是5000个请求,在18秒到19秒之间的1秒内的请求qps达到了 734QPS,所以秒级qps跟控制台看到的79 qps 是相差比较大的。
12

真实业务场景也是非常类似的,有些业务某几秒的请求量会特别大,导致触发了秒级的qps上限从而响应503,这种情况就需要提升SLB规格来避免这种情况。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
7月前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
153 0
|
7月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
187 4
|
24天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
43 3
|
6月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
133 2
|
5月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
102 1
|
5月前
|
运维 负载均衡 算法
SLB与NGINX的异同是什么
SLB与NGINX的异同是什么
548 2
|
7月前
|
负载均衡 应用服务中间件 nginx
解决nginx配置负载均衡时invalid host in upstream报错
在Windows环境下,配置Nginx 1.11.5进行负载均衡时遇到问题,服务无法启动。错误日志显示“invalid host in upstream”。检查发现上游服务器列表中,192.168.29.128的主机地址无效。负载均衡配置中,两个服务器地址前误加了"http://"。修正方法是删除上游服务器列表和proxy_pass中的"http://"。问题解决后,Nginx服务应能正常启动。
573 4
解决nginx配置负载均衡时invalid host in upstream报错
|
6月前
|
JSON 负载均衡 应用服务中间件
Nginx反向代理与负载均衡
Nginx反向代理与负载均衡
|
6月前
|
负载均衡 应用服务中间件 开发工具
技术笔记:nginx和keeplive实现负载均衡高可用
技术笔记:nginx和keeplive实现负载均衡高可用
|
7月前
|
负载均衡 前端开发 应用服务中间件
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400
Nginx+Tomcat负载均衡配置_nginx做tomcat的负载均衡成功,但tomcat的css文件400