前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JMeter Sampler-http请求之KeepAlive使用总结

JMeter Sampler-http请求之KeepAlive使用总结

作者头像
授客
发布2021-06-17 20:12:46
3.5K0
发布2021-06-17 20:12:46
举报
文章被收录于专栏:授客的专栏授客的专栏

Sampler-http请求之KeepAlive使用总结

测试环境

apache-jmeter-2.13

KeepAlive使用介绍

说明:

1、Use KeepAlive 勾上,则表示为求连接设置请求头Connection: keep-alive,该配置对默认的HTTP实现不起作用,因为连接重用不受用户控制,对Apache HTTP组件HttpClient起作用。

这个配置到底有啥用呢?

我们都知道,发起HTTP请求时,需要建立TCP连接,对于普通非keep-alive请求,即不包含请求头Connection: keep-alive的请求,请求完成后,会关闭该TCP连接,再次发起同类请求时,需要再次建立TCP连接,高并发的情况下,会增加服务器资源消耗,对于keep-alive请求,则会告诉服务器,HTTP请求结束后,在条件允许的情况下,保持TCP连接,下次发送请求时,使用上次建立的TCP连接进行数据传输。至此,这个配置有啥用,就不用我说了吧

2、注意,这里KeepAlive是针对同一个线程而言的,其使用效果受到多

方面影响,如下:

客户端

Http实现

HTTPClient4 使用Apache Http组件 HttpClient 4.x(推荐使用)

Java 使用JVM提供的HTTP实现。

空值 如果HTTP请求默认值配置元件中,Advanced选项卡中有设置非空请求客户端实现,则使用该客户端实现,否则使用jmter.properties文件中jmeter.httpsampler属性定义的客户端实现,否则使用默认的 HttpClient4。(原文:Blank value does not set implementation on HTTP Samplers, so relies on HTTP Request Defaults if present or on jmeter.httpsampler property defined in jmeter.properties

注意:Java HTTP实现有以下限制:

  • 因为没有对连接重用做控制。所以,当连接被JMeter释放时,该连接可能被相同的线程重用,也可能不被重用。
  • 最适合单线程使用—各种设置都通过系统属性定义,因此作用于所有连接。
  • 通过代理处理HTTPS时存在bug(CONNECT未正确处理)。请参阅Java Bug 6226610和6208335。
  • 不支持虚拟主机。
  • 仅支持这些方法:GETPOSTHEADOPTIONSPUTDELETETRACE
  • 不支持使用密钥库配置进行基于客户端的证书测试。
JMeter配置

使用HTTPClient4实现时,连接重用还受到JMeter自身参数配置文件httpjmeter.propertieshttpclient4.time_to_live参数配置的影响,如下,该参数值以毫秒为单位,默认为2000,无论如何,http的生存时间,超过该参数值的连接,不会被重用。

代码语言:javascript
复制
httpclient4.time_to_live=2000

服务端

JMeter Use KeepAlive使用效果可能受到服务器相关配置影响,不同类型的服务器配置不一样,以Nginx为例子,和以下配置相关

keepalive_requests number 设置通过一条keep-alive连接可以服务的最大请求数。当请求数超过该指令设置的最大值时,连接将被关闭。

keepalive_time time 限制通过keep-alive连接发起的请求,可以被处理的最大时间,达到该时间,则关闭该连接

keepalive_timeout timeout; timeout 设置keep-alive客户端连接在服务器端保持open状态时间,超过这个时间服务器将关闭连接。如果设置为0,那么禁用keep-alive客户端连接。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-06-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Sampler-http请求之KeepAlive使用总结
    • 测试环境
      • KeepAlive使用介绍
        • 客户端
        • 服务端
    相关产品与服务
    轻量应用服务器
    轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档