请教一个老生常谈的关于吞吐量的问题,越考虑越糊涂了

2020-12-01 21:34:16 +08:00
 justest123

有一个单线程服务,接收到一次请求,考虑到高效、性能等原因,该请求中实际包含了 1000 个待处理事件(类似于批量处理)。

服务内部分为 A 功能模块和 B 功能模块,1000 个事件需要先被 A 模块处理完成后,再由 B 模块处理。已知 A 模块共花费时间 0.1 秒,B 模块共花费时间 0.9 秒,该服务整体花费时间可简单视为 1 秒。

问题:

对 A 模块来说,1000/0.1 = 10000/s (同样,对 B 模块,1000/0.9 = 1111/s ),这个值能不能视为该模块的吞吐量( TPS )?还是说有另外的名词代表这种值?

对服务来说,1000/1 = 1000/s,也是整个服务的吞吐量吗?

662 次点击
所在节点    问与答
3 条回复
billlee
2020-12-01 23:49:55 +08:00
没有这样按功能模块算吞吐量的,你这个功能模块并不能独立运转,A 功能处理完成后必然会阻塞地等待 B 模块。
justest123
2020-12-02 08:59:00 +08:00
@billlee emm,这个也是我感觉稍微别扭的地方,如果这两个模块就是把它们看成一个独立的部分,10000/s 和 1111/s 这两个数值比较适合用什么名词来表示呢?
lvzhiqiang
2020-12-02 10:01:11 +08:00
你可以理解为每秒处理的事务数,两个模块的合作处理是一个事务。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/731144

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX