您可通过PTS控制台快速实现TCP协议压测。本文介绍如何对TCP协议进行压测。

操作步骤

  1. 登录PTS控制台,在左侧导航栏中选择压测中心 > 创建场景
  2. 创建场景页面,单击TCP/UDP压测
  3. 创建TCP/UDP场景页面,填写场景名
  4. 选择协议类型TCP
  5. 场景配置页签下,单击+添加TPC请求节点,输入测试节点名称。
  6. 填写场景配置相关参数。
    • 基本配置区域
      参数 描述 示例
      IP地址 TPC服务的IP地址。 192.168.1.1
      端口号 TPC服务的端口号。 5001
      连接超时 发起连接,服务端无响应的超时时间。 5000
      响应超时 连接建立成功,等待响应返回的超时时间。 5000
      重复使用连接 请求响应完成后,不断开连接,复用连接发送接收下一次请求响应。
      关闭连接 每次完成请求响应完成后,断开连接,下一次重新建立连接。
      使用Nagle算法 TCP是否开启Nagle算法,需要跟实际的业务情况决定。 打开
      结束符 判断行结束的Byte值,比如服务器端返回的字符串都是以换行符结尾,那么可以将该选项设置成10。
      注意 结束符是与读数据相关的,就是设定来自于服务器数据流的一个结束标识字节。如果没有设置结束符将会一直读到输入流结束为止。需要注意的是此处是十进制的值,不能写成Hex;比如您可以查询ASCII表,来确认一个表示结束字符的十进制值。
      10
      内容格式 支持字符串和16进制码流。 字符串
      请求内容 需要发送的内容。 Hi
    • 出参设置页签与检查点设置页签,进行设置。具体操作,请参见出参与检查点
  7. 可选:根据不同压测场景的需求,添加控制器和定时器。
    • 场景配置页签下,单击+添加控制器选择所需的控制器。
      • 循环控制器:控制所含测试节点应循环执行的次数。

        选择循环控制器后,单击其右侧的循环控制器的更多图标图标,选择添加需循环执行的测试节点,并设置循环次数。压测时,会将此循环控制器下的测试节点按序执行设置的次数。

      • 事务控制器:事务控制器下所包含的所有测试节点将会被算作为一个事务。其包含生成父样本是否包含样品中定时器和前后程序的持续时间两个设置项。
        • 生成父样本
          • 开启开关:该事务控制器下各测试节点自身的压测结果不会在压测报告中独立输出,而会被聚合作为事务控制器的结果呈现在报告中。
          • 关闭开关:该事务控制器以及其包含的测试节点的压测结果均会显示在报告中。
        • 是否包含样品中定时器和前后程序的持续时间:若选择开启此开关,则压测报告中事务控制器的平均响应时间为所有测试节点、定时器以及前后置处理器的平均响应时间之和。若不开启此开关,则事务控制器的平均响应时间仅为所有测试节点平均响应时间之和。
      • 仅一次控制器:仅一次控制器下添加的节点仅会被执行一次。
    • 场景配置页签下,单击+添加定时器选择所需的定时器。
      • 常量定时器:可设置停顿时长,表示压测过程中,在此处停顿的时长,单位为毫秒。
      • 同步定时器:可设置停顿时长模拟用户数,表示在一定时间内先等待达到一定用户数然后触发测试,但若在设定时间内未达到指定用户数,则不会继续等待,直接触发测试。
      • 统一随机定时器:统一随机定时器用于控制停顿时长,可设置延迟基准可变跨度。延迟基准为固定停顿时间,可变跨度为随机停顿时间的最大值。统一随机定时器的停顿时长为延迟基准所设的固定停顿时间加上可变跨度所设时间范围内的随机值。各随机值出现的概率相等。
      • 高斯定时器:高斯定时器与统一随机定时器类似,同样用于设置停顿时长,可设置延迟基准可变跨度。若要求随机停顿时间符合正态分布,可使用高斯定时器。
      • 固定吞吐量定时器:固定吞吐量定时器用于控制吞吐量,使测试节点按吞吐量执行。可设置条件和对应的吞吐量。条件包含仅当前线程所有活跃线程当前链路下活跃线程全局活跃线程当前链路下全局活跃线程
  8. 单击施压配置页签,设置TCP的压测模式。
    参数 描述
    压力来源
    • 国内公网(默认模式):发起压测的节点来自全国各地,根据压测的量级来分配对应的节点资源(IP)。
    • 阿里云VPC内网:使用阿里云VPC网络来进行压测,您需要继续选择地域、VPC名称、安全组、虚拟交换机等信息。更多信息,请参见阿里云VPC内网压测
      说明
      • 阿里云内网压测发起节点支持的地域以界面为准。如有其他地域的支持需求,您可以提交工单
      • 在VPC有专线打通了其它云或者线下机房的情况下,若需压测到对应区域,需要确保VPC和这些区域在同一个网段(如都在10.0.0.0/8)。
    压力模式 压力模式有两种:并发模式(虚拟用户模式)、RPS模式(Requests Per Second,每秒请求数,吞吐量模式)。
    • 并发模式:“并发”是指虚拟并发用户数,从业务角度,也可以理解为同时在线的用户数。

      适用场景:如果需要从客户端的角度出发,摸底业务系统各节点能同时承载的在线用户数,可以使用该模式设置目标并发。

      • 并发模式下,需要指定全场景的最大并发数,再设置各串联链路的并发权重。
      • 串联链路内各API的响应速度不同(表现为响应时间不同),所以单位时间内API的并发数也会不同。API响应速度越快,单位时间内累积在API上的并发用户数越少。

        例如,共100个虚拟用户需要操作某个事务(即串联链路)。例如:该串联链路中共有2个API,API 1响应速度快而API 2响应速度慢。则更多的虚拟用户将等待在API 2上,API 2需要更多的线程资源来处理更多的虚拟用户请求。

    • RPS模式:RPS(Requests Per Second)是指每秒请求数。

      适用场景:RPS模式即“吞吐量模式”,通过设置每秒发出的请求数,从服务端的角度出发,直接衡量系统的吞吐能力,免去并发到RPS的繁琐转化,一步到位。

      • API接口(如电商加购物车、下单等)主要用TPS(Transaction Per Second, 每秒事务数)来衡量系统的吞吐能力,选择该模式可以直接按照预期的TPS设置RPS。如果希望检验“下单”接口是否能达到500 TPS的预期,那么设置RPS为500,每秒发送500个请求,可检验系统的吞吐能力。
      • 该模式下,请求无法及时响应时可能会导致较高的并发,异常情况请及时停止。
      • 该模式仅支持非自动递增进行压测(即需在压测过程中手工调速)。
      • 同一链路中,后一个API的RPS值需小于等于前一个API的RPS值。
    递增模式 包括自动递增和手动调速模式:
    • 自动递增(仅适用于并发模式)。

      按照固定比例进行压测量级的递增,并在每个量级维持固定压测时长,以便观察业务系统运行情况。

      设置最大并发递增百分比(如10%)和单量级持续时长(如1分钟)。

      说明 进行压测时,您可以随时对场景或串联链路进行手动调速,自动递增模式会自动失效。
    • 手动调速

      设置并发模式下的最大并发

    压测总时长 设置压测的时间长度。
    定制资源池 当您申请了定制资源池,在使用定制资源池期间,会出现是否使用资源池的选项。关于申请定制资源池的具体操作,请参见定制资源池
    注意 在申请成功的定制资源池使用期间,启动的压测场景默认使用定制资源池中的机器。若您不需要使用定制资源池中的机器,可以在施压配置页签中,选择定制资源池不使用
    来源IP扩展 仅在国内公网压测模式下使用有效。

    来源IP是指发起压测流量的IP地址。来源IP扩展功能允许您根据并发量或RPS,在一定范围内(该范围以控制台页面为准)增加施压IP地址数,减少因以下原因引起的压测异常。

    说明 若遇到以下情况,请优先按照以下处理方案执行,来源IP扩展能帮助您减少问题发生的概率。
    • SLB限制问题:首先请结合购买的SLB产品计费类型,关注规格限制和带宽限制,是否已经到达上限。另外,当SLB是服务最外层,且接口是HTTPS或者开启了7层会话保持功能,压测出现一些503而且后端并没有相关流量和日志,可能出现了SLB单IP地址限流问题
    • 高防或WAF的问题:未关闭高防或WAF可能触发流量拦截。建议您基于业务评估,压测时临时关闭高防或WAF。如果您不想关闭,可以考虑增加PTS的UA放行规则来避免压测流量被拦截的情况。
    • 使用CDN或全站加速:建议您接近或者超出已有业务峰值时,提前提交工单报备。
    流量地域定制 通过指定施压机的地理位置,即可模拟当地的用户流量。开启后可对施压机地域分布进行配置,从而实现施压流量地域分布的定制化。
    在施压配置中,打开流量地域配置开关,按业务需求分配流量比例。在页面右侧可以看到流量分布的饼图。1
    说明
    • PTS流量地域定制功能全部资源包均可使用,支持全球22个地域的流量定制。
    • 在压测概览页或压测报告中,您都可以查看流量地域分布。
  9. 可选:创建场景页面下方,单击调试场景
    可对配置的场景进行调试,验证配置是否正确。更多信息,请参见调试场景
  10. 单击保存去压测,在对话框中单击确定

后续步骤

查看压测报告,具体操作,请参见查看TPC压测报告