有一个单线程服务,接收到一次请求,考虑到高效、性能等原因,该请求中实际包含了 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,也是整个服务的吞吐量吗?
1
billlee 2020-12-01 23:49:55 +08:00
没有这样按功能模块算吞吐量的,你这个功能模块并不能独立运转,A 功能处理完成后必然会阻塞地等待 B 模块。
|
2
justest123 OP @billlee emm,这个也是我感觉稍微别扭的地方,如果这两个模块就是把它们看成一个独立的部分,10000/s 和 1111/s 这两个数值比较适合用什么名词来表示呢?
|
3
lvzhiqiang 2020-12-02 10:01:11 +08:00
你可以理解为每秒处理的事务数,两个模块的合作处理是一个事务。
|