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

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2)业务处理效率

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

  4)业务处理的关键节点

  5)分流策略

  6)异常处理和应急机制








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



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

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
3月前
|
缓存 监控 算法
软件测试中的性能瓶颈分析与优化策略
【10月更文挑战第6天】 性能测试是确保软件系统在高负载条件下稳定运行的重要手段。本文将深入探讨性能测试的常见瓶颈,包括硬件资源、网络延迟和代码效率等问题。通过具体案例分析,我们将展示如何识别并解决这些问题,从而提升软件的整体性能。最后,文章还将分享一些实用的性能优化技巧,帮助读者在日常开发和测试中更好地应对性能挑战。
133 3
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
MarS 是微软亚洲研究院推出的金融市场模拟预测引擎,基于生成型基础模型 LMM,支持无风险环境下的交易策略测试、风险管理和市场分析。
26 8
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
|
4月前
|
监控 测试技术 持续交付
软件测试中的性能瓶颈分析与优化策略
性能瓶颈,如同潜伏于软件深处的隐形障碍,悄然阻碍着系统的流畅运行。本文旨在揭示这些瓶颈的形成机理,剖析其背后的复杂成因,并汇聚一系列针对性的优化策略,为软件开发者提供一套系统性的解决方案。
71 5
|
8天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
27 11
|
10天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
41 10
|
2月前
|
监控 算法 Java
jvm-48-java 变更导致压测应用性能下降,如何分析定位原因?
【11月更文挑战第17天】当JVM相关变更导致压测应用性能下降时,可通过检查变更内容(如JVM参数、Java版本、代码变更)、收集性能监控数据(使用JVM监控工具、应用性能监控工具、系统资源监控)、分析垃圾回收情况(GC日志分析、内存泄漏检查)、分析线程和锁(线程状态分析、锁竞争分析)及分析代码执行路径(使用代码性能分析工具、代码审查)等步骤来定位和解决问题。
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
67 1
|
3月前
|
缓存 监控 测试技术
软件测试中的性能瓶颈分析与优化策略
本文深入探讨了在软件测试过程中,如何有效地识别和解决性能瓶颈问题。通过对性能瓶颈的定义、分类以及常见原因的分析,结合实际案例,提出了一系列针对性的优化策略和方法。这些策略旨在帮助测试人员和开发人员提高软件的性能表现,确保软件在高负载条件下依然能够稳定运行。
|
4月前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
102 1
|
4月前
|
监控 算法 测试技术
软件测试中的性能瓶颈分析与优化策略
本文旨在深入探讨软件测试过程中性能瓶颈的识别与优化方法。通过对性能瓶颈的概念、分类及其成因进行分析,结合实际案例,提出一套系统的性能瓶颈诊断流程和针对性的优化策略。文章首先概述了性能瓶颈的基本特征,随后详细介绍了内存泄漏、资源竞争、算法效率低下等常见瓶颈类型,并阐述了如何通过代码审查、性能监测工具以及负载测试等手段有效定位问题。最后,结合最佳实践,讨论了代码级优化、系统配置调整、架构改进等多方面的解决措施,旨在为软件开发和测试人员提供实用的性能优化指导。
105 4