详情页标题前

阿里云负载均衡压力测试的方法-云淘科技

详情页1

四层负载均衡采用开源软件LVS(Linux Virtual Server)结合Keepalived的方式实现负载均衡,七层负载均衡由Tengine实现负载均衡。

测试建议

在进行压力测试时,配置建议如下:

  • 压测负载均衡转发能力建议使用连接

    一般来说压测除了验证会话保持和均衡性等功能外,主要是验证负载均衡的转发能力,因此使用短连接比较合适,用于测试负载均衡和后端服务器的处理能力。使用短连接测试时,需要注意客户端端口不足的问题。

  • 压测负载均衡吞吐量建议使用长连接,用于测试带宽上限或特殊业务。

    压测工具的超时时间建议设置为一个较小值,如5秒。超时时间太大的话,测试结果会体现在平均响应时间加长,不利于判断压测水位是否已到达。超时时间调小,测试结果会体现在成功率上,便于快速判断压测水位。

  • 后端服务器提供一个静态网页用于压测,以避免应用逻辑带来的损耗。
  • 压测时,监听配置建议如下:
    • 不开启会话保持功能,否则压力会集中在个别后端服务器。
    • 关闭健康检查功能,减少健康检查对后端服务器的访问请求。
    • 性能测试服务的5000并发规格能够提供5个及5个以上的公网IP。

压力测试工具建议

  • 建议您使用阿里云PTS:可以设置足够高的并发,PTS会分配来自全国各地的公网IP,压力来源足够分散,并且可以在PTS中集成云监控,实时查看端到端的全部性能数据。
  • 不建议您使用Apache ab作为压力测试工具:Apache ab在大量并发场景下存在3s、6s、9s阶梯式停顿的现象。Apache ab会通过判断content length来确定请求是否成功,而负载均衡挂载多台后端服务器时,返回的content length会不一致,导致测试结果有误。

使用PTS简单压测示例

创建一个负载均衡实例,添加两台ECS实例作为后端服务器,分别创建一个TCP监听和HTTP监听,后端端口设置为80。ECS服务器的配置为CPU 1核,内存512M使用CentOS 6.3 64位的操作系统。分别登录这两台ECS实例,执行以下步骤完成压测。关于如何登录ECS,请参见ECS远程连接操作指南。

  1. 执行以下命令,安装Apache Web Server提供Web服务。
    sudo yum install -y httpd
  2. 执行以下命令,初始化默认首页index.html。
    sudo echo "testvm" > /var/www/html/index.html
  3. 执行以下命令,启动HTTP服务。
    sudo service httpd start
  4. 执行以下任意一条命令,访问本地的80端口,确认Web服务可用。
    sudo curl localhost

    sudo curl 127.0.0.1:80
  5. 在PTS中创建测试场景,开始压力测试。具体操作请参见如何在一分钟内发起压测?。

可能导致压测性能低的原因

四层监听经过LVS后直接到达后端服务器;七层监听经过LVS后,还需要经过Tengine才到达后端服务器。

如果您使用七层监听进行压力测试,发现压测性能比较低。可能是以下原因造成的:

  • 客户端端口不足。

    在进行压力测试时,客户端端口不足会导致建立连接失败。负载均衡会默认抹除TCP连接的timestamp属性,Linux协议栈的tw_reuse(time_wait 状态连接复用)无法生效,time_wait状态连接堆积导致客户端端口不足。

    解决方法:客户端使用长连接代替短连接。使用RST报文断开连接,即socket设置SO_LINGER属性。

  • 后端服务器accept队列满。

    后端服务器accept队列满,导致后端服务器不回复syn_ack报文,客户端超时。

    解决方法:默认net.core.somaxconn的值为128,执行sysctl -w net.core.somaxconn=1024命令更改net.core.somaxconn的值,并重启后端服务器上的应用。

  • 后端服务器连接过多。

    由于架构设计的原因,使用七层负载均衡时,用户长连接经过Tengine后变成短连接,可能导致后端服务器连接过多,从而表现为压测性能低。

  • 后端服务器依赖的应用成为瓶颈。

    请求经过负载均衡到达后端服务器后,后端服务器本身负载正常,但由于所有的后端服务器上的应用又依赖其它应用,例如数据库,当数据库成为瓶颈时,也会引起性能降低。

  • 后端服务器的健康检查状态异常。

    在压测时,容易忽略后端服务器的健康检查状态,如果有后端服务器健康检查失败或者健康检查状态经常跳跃(好到坏,又从坏到好,反复变化),也会导致压测性能低。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/170017.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 腾讯云云直播慢直播录制

    注意2021年11月10日起,慢直播服务停止维护更新,暂停新用户接入。慢直播服务将不再继续更新,新用户可选择物联网智能视频服务(行业版)进行业务接入,物联网智能视频服务(行业版)整合慢直播原有能力,改版升级,功能优化,轻松开启物联视频服务。请参见 物联网智能视频服务(行业版)-快速入门 接入服务,物联网智能视频服务(行业版)相关计费说明请参见 计费概述。20…

    腾讯云 2023年12月9日
  • 腾讯云对象存储全球加速域名

    COS 使用全球加速域名有哪些注意事项? COS 使用全球加速域名,需要注意以下事项:开启全球加速域名后,预计在15分钟左右即可生效,请稍等片刻以待域名生效。开启全球加速域名后,单个存储桶使用加速域名访问的最大带宽将根据全网业务量进行分配。开启全球加速域名后,只有使用加速域名的请求才有加速效果,存储桶默认域名仍然可以正常使用。使用加速域名时,只有请求链路属于…

    腾讯云 2023年12月9日
  • 腾讯云对象存储更新模板

    功能描述 更新音视频转码模板。 授权说明 授权策略中 action 设置为 ci:UpdateMediaTemplate 。查看所有 action。 服务开通 使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶。 使用限制 使用该接口时,请先确认相关限制条件。详情请参见 使用限制。 请求 请求示例 PUT /template/<Tem…

    腾讯云 2023年12月9日
  • 腾讯云对象存储语音识别模板接口

    简介 本文档提供关于语音识别模板接口的 API 概览和 SDK 示例代码。注意 旧版本可能存在 bug,使用时建议升级到 最新版本。 API 操作描述 创建语音识别模板 创建语音识别模板 更新语音识别模板 更新语音识别模板 创建语音识别模板 功能说明 创建语音识别模板。 方法原型 public Guzzle\Service\Resource\Mode…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云云点播添加域名

    为什么需要添加域名? 当您在使用云点播默认分发域名进行媒体内容加速分发时,添加属于自己的域名进行分发。这样可以增加业务的灵活性,并且可以规避云点播默认分发域名被封禁导致业务分发受影响的风险。 操作步骤 准备一个已完成域名注册可用于视频点播加速的域名,例如:example.com。 方法一:通过云点播控制台添加域名 1. 添加域名 在 云点播控制台 > …

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。