在做性能测试的时候,我们常常听到并发用户、响应时间、吞吐量专业术语,也许大家都理解,这里有一个理解的层次与深度概 念。最近有看断念《软件性能详解与案例分析》一书,看了他的讲解,原来我对这些术语的理解还是比较肤浅,其实,这里也主要受制于自己的知识面。所以,再拿 出来与大家重温一下。

ps:按照惯例先上个图,因为看纯文字的文章比较累!^_^

并发用户数

  大家都知道我们的性能测试就通过工具模拟多用户对系统进行操作,对系统造成压力,来验证系统的性能(不太标准的解释)。 好多人也简单的把性能测试当成并发测试。那么这个“多用户”和“同时”两个因素缺一不可。只多用户不同时,很难对系统构成压力;没有多个用户,同时的概念 也就自然不存在了

并发的两种情况

  一种是严格意义上的并发,即所有的用户在同一时刻做同一件事或操作,这种操作一般指做同一类型的业务。比如,所有用户同一时刻做并发登陆,同一时刻做表单提交。

  另外一种并发是广义范围的并发,这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或都操作可以是相同的,也可以是不同的。比如,在同一时刻有用户在登录,有用户在提交表单。

从服务器的角度来看并发

  前面的两种解释都是从用户业务的角度来解释并发的,因为我们平时所做的性能测试也是从用户端对业务层的操作来进行并发测试的。

  如果考虑整个系统运行过程中服务器所承受的压力是这样的:在该系统的运行过程中,把整个运行过程划分为离散的时间点,在每个点上,都有一个“同时向服务端发送请求的客户数”,这个就是所谓的服务器所承受的最大并发访问数。

真正意义上的并发不存在

  上面试谈了这么多并发,现在又说真正意义上的并发不存在。何解?学操作系统原理的同学都知道,CPU在一个时间点上只能干一件事儿。为什么我们可以边看电影,边打字,边语音。因为CPU很快很快,他可以处理一下电影,再处理一下打字,再处理一下语音。因为它很快,所以,它可以在多个程序之间快速瞬间的切换,给你造成的假象就是它在同时做这些事情。(现在的双核、四核的CPU另说)

  那么我们的系统在接到用户的请求后也要调用CPU来 完成某些处理,然后返回给用户。那么我们对系统有做并发测试是测什么呢?举个简单的例子。假如有一位神医,他的看病速度非常快,假设他的看病速度是不变 的;然后有一群接待人员来接待看病的客人,有成千上万的病人来看病,接待人员要想各种办法来做好接待工作,使病人更快的看到病。比如,可以事先咨询病人得 的什么病,然后将病人进行分类,比如可以扩大接待室,让更多的病人可以进到医院来看病等。

  神医就是我们的CPU, 接待人员就是我们的系统,病人就用户,我们做性能测试的目的就是了解接待人员哪个地方给医院看病造成了瓶颈。只来一个病人,医院的看病速度与服务很好。一 下子来十万个病人各种问题就出来了。接待人员的服务态度下降,多余的人员跟本进不到医院去,医院的洗手间不够用,造成病人无法上则所而离开,这些都属于系 统问题。所以,我们一般测试的目的是看医院的接待能力。

系统用户数与同时在线人数

  在实际的性能测试中,经常接触到与并发用户相关的概念还有“系统用户数”与“同时在线人数”下面通过一个实例来描述他们之间的差别。

  假设有一个网站,注册用户才能登录使用各种功能,如上传头像,阅读专家文章等。该系统有20万注册用户,这就是说有20万用户可以使用这个网站的所有功能,20万就是这个网站的“系统用户数”,网站有一个在线统计功能,从统计数据中可以看到,同时登录网站的人数的最高记录是2万,就是有2万人同时用浏览器打开着这个网站。2万就是“同时在线人数”

  那么系统的并发用户数是多少呢?2万么?NO!这2万只表示在系统最高峰时有这么多用户登录了网站,并不表示实际服务器的承受压力。因为服务器承受压力还与具体的用户访问模式相关,在这2万用户中考察某一个时间点对用户发出请求数,可以会大大缩水。那么,该系统的服务端承受的最大并发访问数是多少呢?这个取决于业务并发用户数和业务场景,一般可以通过服务器日志的分析得到。

求并发用户数公式

在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务的角度关注应该设置多少个并发数比较合理。

下面找一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每个员上登录签到系统的时长为5分钟。可以用下面的方法计算。

    C=1000/30*5=166.7

C表示平均并发用户数,那么对这个签到系统每分钟的平均在线用户数为166

当然,在性能测试上,任何公式都不是严谨的,最重要的是对系统做出有效正确的分析。 --------------------------

根据 Teaey 的提醒已经做了改正,计算结果是每分钟,而且是在线用户数,而非并发用户数。

性能测试知多少---并发用户相关推荐

  1. 性能测试知多少---系统架构分析

    有些事儿一旦放一放就难再拾起来,突然发现<性能测试知多少>这个系列两月没更新,关键时我都不知道啥时候放下的,总容易被各种技术所吸引走,如饥似渴的想学更多的东西,这几天一直有朋友问我为啥不写 ...

  2. 【虫师--系列20】性能测试知多少---性能分析与调优的原理

    转自: http://www.cnblogs.com/fnng/archive/2013/03/19/2970315.html   作者:虫师 最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先 ...

  3. 两亿多用户,六大业务场景,知乎AI用户模型服务性能如何优化?

    作者 | 王政英 来源 | 知乎技术专栏 用户模型简介 知乎 AI 用户模型服务于知乎两亿多用户,主要为首页.推荐.广告.知识服务.想法.关注页等业务场景提供数据和服务,例如首页个性化 Feed 的召 ...

  4. 探讨LoadRunner的并发用户和集合点

    探讨LoadRunner的并发用户和集合点 近来跟踪一个项目,发现同事们在执行性能测试时,比较热衷于使用集合点,从概念上认为要得到并发用户就必须设置集合点,认为在执行一个压力测试脚本时,设置了集合点才 ...

  5. 性能测试知多少---性能需求分析

    需求分析是个繁杂过程,它并非我们想象的那么简单,而性能测试需求除了要对系统的业务非常了解,还需要有深厚性能测试知识.才能够挖掘分析出真正的性能需求. 如何获得有效的需求 1.客户方提出 客户方能提出明 ...

  6. LR中并发用户和集合点

    下文转载: 布 瓜  LR中并发用户和集合点 看到51上三个高手Zee, 大漠飞鹰,xingcyx的一场非常精彩的关于并发用户数和集合点的讨论,很有意义.如果对这两个概念不清楚的朋友,一定要仔细领悟了 ...

  7. 不同性能测试工具的并发模式

    大家所熟悉的性能测试工具有Loadrunner.JMeter,以及其他小众一些的工具,如Locust.Ngrinder.Gatling等等,那么你们知道这些工具有什么不同吗?为什么有的工具能模拟数千上 ...

  8. 转载:性能测试解惑之并发压力

    声明:非原创文章,原创链接为http://www.cnblogs.com/pohome/articles/2073283.html. l 如何考察性能 这个问题相信很多同事都了然于心了,基本都有自己的 ...

  9. 性能测试解惑之并发压力

    前言:之前一直做的软件质量工作,有过一些经验和一些不太成熟的思路,尽管与现在从事产品运营不同,但无论是内涵还是联系,都是非常紧密的,无论如何,我都会继续关注产品的质量问题. 上周跟一朋友阐述性能中并发 ...

最新文章

  1. Hadoop学习笔记—7.计数器与自定义计数器
  2. Safari的CSS HACK方法
  3. FCKeditor在线文本编辑器初级应用
  4. Win64 驱动内核编程-28.枚举消息钩子
  5. 单例模式可以分为懒汉式和饿汉式:     懒汉式单例模式:在类加载时不初始化。     饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。
  6. c++ 输出二进制_Python之输入输出(input_output)
  7. Linux虚拟地址空间布局以及进程栈和线程栈总结
  8. leetcode 816. Ambiguous Coordinates | 816. 模糊坐标(Java)
  9. sublime python插件_sublime text 3 + python配置,完整搭建及常用插件安装
  10. Django(part34)--一对多映射
  11. iOS中frame和Bounds之间的区别
  12. VMware vSphere 入门学习笔记
  13. 为什么黑客都用python-为什么如此多的黑客都用python?
  14. join丢失数据_15、Hive数据倾斜与解决方案
  15. 运气真不错:3月取到的TeaVM恰好能够运行,之前之后都有问题
  16. 致歉信:拖更两天抱歉了
  17. 还在问java架构师路线?学习路线?十年京东架构师教你这样做
  18. tensorflow中tf.nn.xw_plus_b
  19. [原创]我个人整理的AD/2000技巧,各位收藏吧!60多个。
  20. 分享一组惠斯通电桥温度补偿前后的图像

热门文章

  1. 用XMing + Putty 凿出让Linux 图形界面在Windows裸奔的隧道
  2. CLLocation的distanceFromLocation方法计算地图上距离 (汇总)
  3. .net 开源组件推荐 之 StackExchange
  4. Linux 环境下NFS 服务搭建
  5. Memcached 集群环境Java客户端
  6. 动态的根据一个资源名获得到对应的资源id
  7. 使用tolua++编译pkg,从而创建自定义类让Lua脚本使用
  8. 彻底澄清:C#方法参数
  9. BCH粉必转 | 围绕BCH建立的相关项目和应用列表汇总
  10. WPF 动画显示控件