服务器压力测试概念及方法(TPS/并发量)

 更新时间:2021年12月09日 15:08:19   作者:Andy____Li  
本文详细讲解了服务器压力测试概念及方法(TPS/并发量),对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1 压力测试中的指标

1.1 TPS

TPS 即Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程**(完整处理,即客户端发起请求到得到响应)**。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。一个事务可能对应多个请求,可以参考下数据库的事务操作。

1.2 QPS

QPS 即Queries Per Second的缩写,每秒能处理查询数目(完整处理,即客户端发起请求到得到响应)。是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

我们从它的英文全名可以得出它是查询意思,原来在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数。 虽然名义上是查询的意思,但实际上,现在习惯于对单一接口服务的处理能力用QPS进行表述(即使它并不是查询操作)。

1.3 平均处理时间(RT)

RT:响应时间,处理一次请求所需要的平均处理时间。

我们一般还会关注90%请求的的平均处理时间,因为可能因网络情况出现极端情况。

1.4 并发用户数(并发量)

每秒对待测试接口发起请求的用户数量。

1.5 换算关系

QPS = 并发数/平均响应时间

并发量 = QPS * 平均响应时间

比如3000个用户(并发量)同时访问待测试接口,在用户端统计,3000个用户平均得到响应的时间为1188.538ms。所以QPS=3000/1.188538s= 2524.11 q/s。

我们就可以这样描述本次测试,在3000个并发量的情况下,QPS为2524.11,平均响应事件为1188.538ms

1.6 TPS和QPS的区别

这个问题开始,我认为这两者应该是同一个东西,但在知乎上看到他们的英文名,现在我认为:

QPS 每秒能处理查询数目,但现在一般也用于单服务接口每秒能处理请求数。

TPS 每秒处理的事务数目,如果完成该事务仅为单个服务接口,我们也可以认为它就是QPS。

PS:还有一个RPS的的概念 request per second 。每秒请求数,在一定条件下和QPS 和TPS类似。

2 压力测试方法

我们可以使用压测工具模拟多用户对系统进行压力测试。后面会有压测工具的介绍

而测试的方式是,以一定请求总量,保持不变,逐步增加并发量,观察QPS的变化及平均响应时间的变化。

比如10000的总请求数,然后测试100的并发量情况下的QPS值,然后200, 300, 400, 500等。

一个系统吞吐量通常由TPS、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达 到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。这里给出一份使用ab工具的压测图。

从图中可以看出2000的并发量时,QPS已经达到2500左右,后续加大并发数仍维持在2500,说明该接口在该配置下,QPS为2500,即每秒该系统的能力只能处理2500个请求左右,后面加大的并发量,只会导致平均响应时间的增加。(PS:因为每秒只能处理2500个请求,而一次性有7000的并发,自然会造成请求堆积,导致平均响应时间会变长)我们看到超过14000之后连QPS也开始急剧下降,说明系统超负荷工作,导致性能开始急剧下降。而一般情况下,我们认为平均响应时间达到一定值,就已经不可以接受了。

3 相关文档

估计物联网设备并发量整理的blog:

https://www.jb51.net/article/231516.htm

压力测试工具ab工具:

https://www.jb51.net/article/231502.htm

Node express框架压测结果:

https://www.jb51.net/article/231512.htm

到此这篇关于服务器压力测试概念及方法(TPS/并发量)的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 如何通过iptables将http请求从A服务器转发到B服务器

    如何通过iptables将http请求从A服务器转发到B服务器

    这篇文章主要介绍了如何通过iptables将http请求从A服务器转发到B服务器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Svn安装和使用_动力节点Java学院整理

    Svn安装和使用_动力节点Java学院整理

    这篇文章主要介绍了Svn安装和使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Windows远程数据、文件同步工具cwRsync配置方法

    Windows远程数据、文件同步工具cwRsync配置方法

    这篇文章主要介绍了Windows远程数据、文件同步工具cwRsync配置方法,需要的朋友可以参考下
    2015-10-10
  • centos服务器常用清理脚本分享

    centos服务器常用清理脚本分享

    做开发时,经常遇到服务器监控报警,日志占据大量的磁盘空间,需要清理,每次手动清理很麻烦,这里分享一些定时清理的脚本,减轻运维的工作量,这篇文章主要介绍了centos服务器常用清理脚本分享,需要的朋友可以参考下
    2024-05-05
  • GitHub Actions的概念、常见用例和示例

    GitHub Actions的概念、常见用例和示例

    GitHub中的GitHub Actions是一个持续集成和持续交付的平台,它可以帮助你通过自动化的构建(包括编译、发布、自动化测试)来验证你的代码,无论是自动构建和测试代码,还是自动部署应用程序,GitHub Actions 都可以帮助开发团队提高效率,降低错误率
    2024-05-05
  • 图片要启用gzip压缩吗(绝对不要)

    图片要启用gzip压缩吗(绝对不要)

    这篇文章主要介绍了图片要启用gzip压缩吗?绝对不要!,需要的朋友可以参考下
    2016-04-04
  • 阿里云存储服务OSS基本概念

    阿里云存储服务OSS基本概念

    对象存储(Object Storage Service,简称OSS),是阿里云提供的海量、安全和高可靠的云存储服务。存储容量和处理能力的弹性扩展,按量付费真正使您专注于核心业务
    2015-12-12
  • 关于HTTPS端口443的技术讲解(什么是443端口)

    关于HTTPS端口443的技术讲解(什么是443端口)

    本文将重点介绍HTTPS 443端口,它是如何工作的,它保护什么,以及为什么我们需要它,需要的朋友可以参考下
    2022-10-10
  • 理解web服务器和数据库的负载均衡以及反向代理

    理解web服务器和数据库的负载均衡以及反向代理

    这里的“负载均衡”是指在网站建设中应该考虑的“负载均衡”。假设我们要搭建一个网站:aaa.me,我们使用的web服务器每秒能处理100条请求,而aaa.me这个网站最火的时候也只是每秒99条请求,那么我们使用一个服务器是完全可以的
    2014-04-04
  • windows安装OpenSSL的方法小结

    windows安装OpenSSL的方法小结

    openssl是一个强大的安全套接字密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的使用
    2023-09-09

最新评论