从食堂就餐看性能测试分析

中午在单位食堂吃饭排了个长队,等了好半天。然后就想这不就是在跑性能吗??

  如果把食堂看作一个在线系统,员工吃饭看作是一次业务处理。回过头来看系统性能测试分析中需要关注的点,其实颇有意思

  首先最直观的性能表现就是打饭窗口的长队,可以说这是系统性能处理能力最直观的表现了。指标对应ResponseTime

  队伍前进的快慢,对应每秒处理事务数TPS

  同时进餐人数,对应并发请求数

  我们再看看影响性能指标的相关因素

  1)打饭窗口数--对应业务处理进程数,有时某个窗口存在多个打饭师傅,这时可以看作是多线程。处理进程(线程)的多少,是决定业务处理性能的最主要因素。

  2)师傅的业务熟练程度--处理器的性能,计算能力

  3)所点餐品多少和分布情况--对应数据的处理能力。所点餐品离窗口近,分布集中,自然处理起来快些,好比数据存储在内存库,不进行跨表、跨库的关联处理之类,性能自然较好。

  4)刷卡付账环节--一般组合的餐品价格师傅都能快速算出来,但是比较多的菜品,计算起来要多花点时间。好比对于一些常见的请求,从缓存里读取自然会快些。

  异常情况1:卡内金额不够、点菜结束又再点了一份。对应到这些异常处理或是重试会也影响处理性能。

  异常情况2:看菜单上有的菜,点菜时却发现没有,需要重新确认。这个相当于业务请求先查询出携带的参数,响应却判参数不存在了。数据实时关联没做好,属于系统Bug(此Bug还存在啊)

  5)选择的餐品类型---打饭的队伍比等面条、馄饨的队伍处理起来一般相对快些。不同业务,处理的方式不同,性能表现也不同。

  另外,餐厅的面积是有限的,窗口数也是有限的,打饭师傅的数量也是有限的。所以系统处理能力或曰系统容量是有限的。貌似目前食堂还没达到处理极限(虽然用户满意度不高),暂时还不用扩容,呵呵

  其实我们注意到,针对处理能力的问题,有两个现象:

  1)二楼食堂人满为患,一楼食堂比较宽松。这个给我们的启示就是,在系统还具备处理能力的前提下,性能并不是影响用户选择的最主要参考(关键需求即业务本身的吸引力更重要)。但系统超过处理能力或者系统异常,无法提供服务后果还是很严重的。饿肚子咋干活。。

  2)业务上存在分时处理,所有的业务请求被强制分时间段访问。这个是根据业务特点决定的,业务具有明显的峰谷特点,在系统容量无法处理大量并发时,对请求通过业务逻辑实现错峰分流,是解决性能问题一种常规手段。

  上文也提到,餐品窗口有不同类型,面条、盖浇饭等。这个其实是根据业务特点实现的定向分流,提高资源处理效率。如果都混在一起,性能应该不好。

   再一个,我们打饭其实包含了多个操作步骤:排队、取餐具、点餐、盛饭盛汤、落座、进食、返还餐具。对应到性能测试分析,可以借鉴的就是,业务处理要进行 细分,系统重点处理关键节点,业务请求本身能完成的事务由客户端完成,在请求时携带结果参数(餐具)。业务处理完成后,要及时完成垃圾回收释放资源。

  另外一个比较重要的地方就是应急处理,系统发生异常时要能保证提供最基本的服务。饭点时员工吃不上饭应该是这个系统不能接受的问题。其实可以考虑开个零售点备些面包、方便面啥的,这样至少停电、停气时还能满足最基本的充饥需求。

  基本就这么多,其实还有很多后台的工作我们看不到,其实应该对性能影响也是很大的,比如食材的准备、烹饪过程、配套设施的保障等,这边就不发散了。

  总结一下,从食堂系统来看,我们做性能分析其实大致要关注以下几点:

  1)业务请求的数量、并发请求数

  2)业务处理效率

  3)系统资源情况,处理能力

  4)业务处理的关键节点

  5)分流策略

  6)异常处理和应急机制

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-08-02 16:41:32

从食堂就餐看性能测试分析的相关文章

重点高中推76条“军规”:食堂就餐不能托人带

凤凰山麓,"惟楚有材"的牌楼高高矗立.全国首批重点高中武昌实验中学,注重德育,不唯分数,昨日引来武汉百余名中小学德育干部观摩学习.其中最吸引大家注意的,就是该校于近日出台的76条"军规",包括无条件遵守学校一切规章制度.不准佩戴各种首饰.不说脏话等. 这些"军规",记录在全校学生人手一本的<学生手册>里.高二学生程硕告诉记者,班会课上,每名学生都要认真学习学校规定,其中很多内容是与学校无关的,如不在公共场所喧哗.乘公共交通工具主动给老

物联网区别于云计算技术的几大看点分析

本文讲的是物联网区别于云计算技术的几大看点分析,物联网和云计算在很多方面有对等的可比性,例如,云计算有SPI(即SaaS.PaaS.IaaS)三层的划分,物联网也有DCM(即感知层.传输层.应用层)的三层划分.美国NIST(美国国家标准技术研究院)把云计算的部署模式分为共有云.私有云.社区云和混合云,物联网的存在方式分为内网.专网和外网;也可和云计算一样,把物联网的部署模式分为公有物联网(Public IoT).私有物联网(Private IoT).社区物联网(Community IoT)和混合

(虽然是转的,很希望给大家看)分析中文编码问题

简介  编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多.本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别:Java 中经常需要编码的场景:出现中文问题的原因分析:在开发 Java web 程序时可能会存在编码的几个地方,一个 HTTP 请求怎么控制编码格式?如何避免出现中文问题?   为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?

【算法】1 由插入排序看如何分析和设计算法

插入排序及其解决思路 算法的作用自然不用多说,无论是在校学生,还是已经工作多年,只要想在计算机这条道路走得更远,算法都是必不可少的. 就像编程语言中的"Hello World!"程序一般,学习算法一开始学的便是排序算法.排序问题在日常生活中也是很常见的,说得专业点: 输入是:n个数的一个序列<a1,a2,...,an−1,an> 输出是:这n个数的一个全新的序列<a,1,a,2,...,a,n−1,a,n>,其特征是a,1≤a,2≤...≤a,n−1≤a,n 举

前端性能测试分析

原理篇 browser工作原理 web浏览器与web服务器之间通过HTTP协议进行通信的过程.所以,web C/S之间握手的协议就是HTTP协议. 页面的请求过程 请求阶段 browser send url request 递归寻找DNS server 连接目标IP并建立TCP连接 向目标服务器发送http请求 web服务器接收请求后处理 web服务器返回相应的结果[无效.重定向.正确页面等] 浏览器接收返回的http内容 前端解析阶段 渲染引擎-通过网络获得所请求文档的内容, 解析html以构

PHP中json_encode、json_decode与serialize、unserialize的性能测试分析_php技巧

于是便联想到PHP中的对象怎么样序列化存储性价比最高呢?接着想到了之前同事推荐的JSON编码和解码函数. 据他所说,json_encode和json_decode比内置的serialize和unserialize函数要高效. 于是我决定动手实验,证实一下同事所说的情况是否属实. 实验分别在PHP 5.2.13和PHP 5.3.2环境下进行. 用同一个变量,分别用以上方式进行编码或解码10000次,并得出每个函数执行10000次所需的时间. 以下是PHP 5.2.13环境其中一次测试结果: 复制代

关于Amazon EC2云服务性能测试分析

EC2云平台测试搭建 现在,人们一听到云计算都不会特别陌生,然而作为Amazon提供的云计算环境的基本平台,谁也都不会忽略Amazon EC2.人们通过使用EC2,就可以根据个人或企业的需要在任何时候简便地创建.启动和供应虚拟实例.Amazon提供的云计算服务中,更多人或许只对软件即服务(SaaS)所熟悉,而硬件即服务(HaaS)则云里雾里. HaaS--一个基于Xen管理程序结构的计算服务.它通过创建既可以从零开始也可以使用预先构建好的映像文件允许开发者创建基于Linux的虚机,让用户在使用W

《精通软件性能测试与LoadRunner最佳实战》—第2章2.节

内 容 提 要 精通软件性能测试与LoadRunner最佳实战 本书在介绍软件性能测试概念的基础上,结合对实际测试案例的剖析,重点讲解了性能测试实战技术.LoadRunner工具的使用技巧和实践工作中的问题解答. 全书分为15章,内容从测试项目实战需求出发,讲述了软件测试的分类以及测试的流程等,还重点讲述了性能测试技术和LoadRunner 11.0工具应用的实战知识.为了有效地解决工作中遇到的问题,将实践中经常遇到的问题进行总结汇总成几十个解决方案.详细的项目案例.完整的性能测试方案.计划.用

应用性能诊断方法与行业最佳实践分析

随着Internet的普及与迅速发展,企业业务量的迅速加大, IT系统承载的负荷越来越重,系统性能的好坏严重影响了企业对外提供的服务质量.应用性能诊断分析是性能测试实施过程的重要环节. 目录 通用的性能测试实施过程 应用性能诊断分析方法-分层法 应用性能诊断分析方法-分段法 总结 一. 通用的性能测试实施过程 1.需求分析 性能测试需求是应用需求的衍生.需要借助于相关的理论知识和相关领域的经验积累,对性能测试需求进行分析整理.需要明确下面相关内容: 测试目标 测试范围 测试策略 测试模型构建