性能测试:通过简单的例子理解并发量,线程数,吞吐量,TPS

发布时间 2023-12-25 10:31:20作者: 越长大越孤单哦

看个简单的例子

①老王开了家餐厅

我们的主角老王,在M市投资新开业了一家,前来用餐的顾客络绎不绝:

餐厅里有4种不同身份的人员:

 用户一次完整的用餐流程如下:

1.顾客到店小二处付款点餐    =>   

2.小二将订单转发给后厨    =>   

3.后厨与备菜工配合,取材完成烹饪后交给小二    =>     

4.小二上菜,顾客用餐。

假设所有顾客都不堂食而是打包带走,也就是不考虑用户用餐时间。餐厅完成一次订单的时间是多久?

订单时间 = 顾客点单时间 + 前台接收转发时间 + 后厨取材烹饪时间 + 后厨交给服务员,服务员上菜时间。

说白了就是每个流程的耗时相加。

假设以上时间分别为1,1,5,1(分钟),那么一次订单的完成时间就是8分钟

②问题来了

餐厅当然不可能只有一个人就餐,所以我们接下来看多人就餐的情况。

假设同一时间点上有两人就餐,会发生什么情况?

第一位用户与第一个场景一样,仍然是点单-下单-烹饪-上菜,8分钟后第一位顾客拿着打包的食物离开。

第二位用户则有所不同了。假设小二,厨师,备菜都只有一人,而且他们每个人同时只能处理一件事情。

那么第二位用户首先需要在点餐时等待小二1分钟,而后厨师烹饪第一位用户的菜时,没有任何人在为他服务。

我们来梳理一下这个过程中,每一分钟都发生了什么事情:

可以看到,两个顾客完成订单的总时长是13分钟。

继续推算我们发现,每增加一人总时长增加5分钟。

在当前的人员配置下,顾客越多,后来的顾客等待时间就越长。

③这还不是高峰期

如果餐厅在高峰时段只有两人用餐,实际一个运营得当的开封菜餐厅,在用餐高峰时段的顾客数可能高达百人。

那么问题来了,在某个普通工作日,12:00午饭时间,带着各种工牌的IT男女顾客蜂拥而至,餐厅瞬间挤进来一百人。

这个时候会发生什么?

现在餐厅已经完全服务不过来了,后续的顾客等的时间越来越长,最后一位可怜的顾客要等到差不多晚上8点才能吃到饭。

这显然是不可能的,实际上等了不到半个小时吃不上饭的顾客就都要走光了。

老王开始考虑如何应对营业高峰期的情况。

经过上面的分析,老王发现,增加各岗位人手无疑是最直观的解决办法!

我们可以计算一下人手增加的情况。假设把所有人员增加为2人配置:

那么很简单,2人就餐的情况下,由于所有人员并行服务,就餐的两名顾客可以同一时间点餐,等待烹饪,上菜后打包走人。

而后来的客人可以看作两条并行的线,那么100顾客的用餐时间就很自然的减半了。

看到这里,终于出现“并行”的概念了。

④继续调优

通过double人员配置,老王成功的使得用餐高峰期的服务能力提高了一倍,但这还不够。这种情况下,服务100顾客仍需差不多4个小时。

老王再次思考整个服务团队的配置和各环节处理能力,他发现,其瓶颈就在于“后厨”。顾客的等待时间,大部分都是在等待烹饪。

那么增加后厨能力就是重中之重,老王继续做了一系列措施:

再次double大厨人数,现在厨师们四个人同时并行做菜。

让备菜员提前将热门食材准备好。

聘请更有经验的大厨,每个餐品烹饪时间更快,加上提前备菜,整个配餐时间缩短到2分钟。

将点餐的过程改为使用手机小程序下单,让小二专注于上菜。

如此配置之下,这家开封菜终于可以在1小时之内就完成对100人顾客的就餐服务了!