1、并发用户数≠每秒请求数

简单说,当你在性能测试工具或者脚本中设置了100并发用户数后,并不能期望着一定会有每秒100个请求发给服务器。事实上,对于一个虚拟用户来说,每秒发出多少请求只跟服务器返回响应的速度有关,如果虚拟用户在0.5秒内就收到了响应,那么它会立即发出第二个请求;而如果要一直等待3秒才能得到响应,它将会一直等到收到响应后才发出第二个请求。例如,如果用户发出请求后,0.2s内得到响应,那么100个用户每秒完成500个请求;只有当响应时间恰好是1秒时,并发用户数才会等于每秒请求数.

也就是说,并发用户数的设置只是保证服务器在任一时刻都有100个请求需要处理,而并不一定是保证每秒中发送100个请求给服务器。

2、thought与tps

在不同的测试工具中,对于吞吐量(Throughput)会有不同的解释。例如,在LoadRunner中,这个指标是以字节数为单位来衡量网络吞吐量的,而在JMeter中则是以事务数/秒为单位来衡量系统的响应能力的。不过在大多数英文的性能测试方面的书籍或资料中,吞吐量的定义使用的是后者。

3、响应时间

C1:用户请求发出前在客户端需要完成的预处理所需要的时间;

C2:客户端收到服务器返回的响应后,对数据进行处理并呈现所需要的时间;

从用户的角度来看,响应时间=(C1+C2)+(A1+A2+A3)+(N1+N2+N3+N4);但是从系统的角度来看,响应时间只包括(A1+A2+A3)+(N1+N2+N3+N4)。

4、如何评价性能的优劣:用户视角vs.系统视角

对于最终用户(End-User)来说,评价系统的性能好坏只有一个字——“快”。最终用户并不需要关心系统当前的状态——即使系统这时正在处理着成千上万的请求,对于用户来说,由他所发出的这个请求是他唯一需要关心的,系统对用户请求的响应速度决定了用户对系统性能的评价。

而对于系统的运营商和开发商来说,期望的是能够让尽可能多的用户在任意时刻都拥有最好的体验,这就要确保系统能够在同一时间内处理更多的用户请求。正如在《理发店模型》一文中所描述的:系统的负载(并发用户数)与吞吐量(每秒事务数)、响应时间以及资源利用率(包括软硬件资源)之间存在着一个“此消彼长”的关系。因此,从系统的运营商和开发商的角度来看,所谓的“性能”是一个整体的概念,是系统的负载与吞吐量、可接受的响应时间以及资源利用率之间的平衡。

换句话说,“好的性能”意味着更大的最佳并发用户数(The Optimum Number of Concurrent Users)和最大并发用户数(The Maximum Number of Concurrent Users)。

5、最佳用户数与最大用户数

图中有三条曲线,分别表示资源的利用情况Utilization,包括硬件资源和软件资源)、吞吐量Throughput,这里是指每秒事务数)以及响应时间Response Time)。图中坐标轴的横轴从左到右表现了并发用户数Number of Concurrent Users)的不断增长。

最佳用户数:吞吐量和资源占用率响应增长,但是用户响应时间变化不大

最大用户数:资源占用达到饱和,吞吐量增长明显放缓甚至停止增长,而响应时间却进一步延长

举例,假如一个系统的最佳并发用户数是50,那么一旦并发量超过这个值,系统的吞吐量和响应时间必然会 “此消彼长”;如果系统负载长期大于这个数,必然会导致用户的满意度降低并最终达到一种无法忍受的地步。所以我们应该 保证最佳并发用户数要大于系统的平均负载。要补充的一点是,当我们需要对一个系统长时间施加压力——例如连续加压3-5天,来验证系统的可靠性或者说稳定性时,我们所使用的并发用户数应该等于或小于“最佳并发用户数”

对于一个系统来说,我们应该 确保系统的最大并发用户数要大于系统需要承受的峰值负载

转载于:https://www.cnblogs.com/zyp1/p/5841807.html

性能测试中容易混淆的概念相关推荐

  1. java中容易混淆的方法_java中容易混淆的概念

    java中容易混淆的概念 1. 谈谈 final, finally, finalize 的区别final-修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不 能作为父类被 ...

  2. C语言中易混淆的标识符,C语言指针中易混淆的概念

    C语言指针中易混淆的概念 一.数组指针与指针数组的区别 考虑数组的指针的时候我们要同时考虑类型和维数这两个属性.换一句话,就是说一个数组排除在其中存储的数值,那么可以用类型和维数来位置表示他的种类. ...

  3. 会议容易中吗_拉伸、缩放、比例,这些CAD中容易混淆的概念你搞清楚了吗?

    很多小伙伴刚学CAD不久,对于一些CAD中相似的概念还傻傻分不清,特别是有一些名字翻译成中文之后是一样的,但功能却不一样的概念,特别容易混淆,今天小编就来给大家简单地区分一下这些容易混淆的概念,帮大家 ...

  4. 7个VR开发中容易混淆的概念:SteamVR、OpenVR、OpenXR……

    在进行Unity VR应用程序开发过程中,有几个容易混淆的概念, 本文将尝试做一次区分,如果有任何疑问,读者可在文末留言共同讨论.这几个概念包括OpenVR .OpenVR Desktop.OpenV ...

  5. php中的pecl是什么,什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释

    什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释 概述 关于PEAR,PECL这两个东西,初学PHP的时候就知道,但是貌似用的人很少再加上以前也是在Windows下做开发,所以了解的不多 ...

  6. 转:性能测试中的性能测试指标与用户体验分析

    转自:http://www.ltesting.net/ceshi/ceshijishu/xncs/2012/0223/204182_2.html 性能测试中的性能测试指标与用户体验分析 网络应用性能分 ...

  7. python画海绵宝宝_《1,2,3到动物园》数数书,适合幼儿园小班宝宝亲子共读,从游戏中了解数字的概念...

    大家好,我是神桐妈妈,最近开始陆续给几个幼儿园做了有关绘本方面的师资培训,然后又有新的幼儿园要有了嵌入式幼儿园绘本馆,有了绘本,有了书香氛围,又有孩子们开始接触绘本,每天拿着一本绘本带回家,和爸爸或者 ...

  8. 服务器性能主要指标,性能测试中服务器关键性能指标浅析

    在对互联网服务进行服务端性能测试时,主要关注两方面的性能指标: 业务指标:如吞吐量(QPS.TPS).响应时间(RT).并发数.业务成功率等 资源指标:如CPU.内存.Disk I/O.Network ...

  9. 服务器io性能指标,性能测试中服务器关键性能指标浅析

    在对互联网服务进行服务端性能测试时,主要关注两方面的性能指标: 业务指标:如吞吐量(QPS.TPS).响应时间(RT).并发数.业务成功率等 资源指标:如CPU.内存.Disk I/O.Network ...

  10. 性能测试中服务器关键性能指标浅析

    业务指标:如吞吐量(QPS.TPS).响应时间(RT).并发数.业务成功率等 资源指标:如CPU.内存.Disk I/O.Network I/O等资源的消耗情况 本文主要介绍一些广泛适用的.基本的资源 ...

最新文章

  1. 相机模型--A Theory of Catadioptric Image Formation
  2. WSL的openssh-server使用报错:Could not load host key: /etc/ssh/ssh_host_rsa_key
  3. 在EXT中向弹窗传值或者对象
  4. react 合并数组_React快速上手
  5. 虚幻引擎学习之路:粒子系统篇(二)
  6. LeetCode Algorithm 572. 另一棵树的子树
  7. 什么时候使用Shell
  8. node vue 合并项目_吐血整理最佳实践:SpringBoot整合Vue前后端分离开发
  9. Tree Restoration Gym - 101755F (并查集)
  10. python入门100例题-这 100 道 Python 题,拿去刷!!!
  11. android图片拖动放大_Android拖放
  12. 内存越界并不等于马上出错
  13. 什么场景下声明式事务会失效?如何解决?
  14. 大学生网课搜题的网站源码 附带一个免费接口
  15. shell脚本 文件拷贝
  16. python之简单的文件处理
  17. ubuntu14.04下推荐的工具及插件
  18. 人工智能期末复习——速通知识点
  19. 【Markdown基础教程】Markdown介绍
  20. 高手帮忙,菜鸟提问关于Query的基础问题!很急!就剩这些分了!好心人帮忙!

热门文章

  1. jQuery系列:Ajax
  2. 下一时代的HTML5和JavaScript
  3. 关于java加壳和代码混淆
  4. Nginx负载均衡如何进行配置
  5. rox + openbox + fbpanel + conky打造又快又稳的桌面[转]
  6. wxpython和tkinter哪个好_为什么很多Python开发者写GUI不用Tkinter,而要选择PyQt和wxPython或其他?...
  7. json html双引号,当gethtml方法返回json时,json中的字符串如果存在双引号,会破坏json的格式, 如:quot;...
  8. matlab isnumeric函数,matlab中isnan函数
  9. java 内部类_Java内部类总结
  10. Spring之获得Bean本身的id