V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
justest123
V2EX  ›  问与答

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

  •  
  •   justest123 · 2020-12-01 21:34:16 +08:00 · 657 次点击
    这是一个创建于 1213 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个单线程服务,接收到一次请求,考虑到高效、性能等原因,该请求中实际包含了 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,也是整个服务的吞吐量吗?

    3 条回复    2020-12-02 10:01:11 +08:00
    billlee
        1
    billlee  
       2020-12-01 23:49:55 +08:00
    没有这样按功能模块算吞吐量的,你这个功能模块并不能独立运转,A 功能处理完成后必然会阻塞地等待 B 模块。
    justest123
        2
    justest123  
    OP
       2020-12-02 08:59:00 +08:00
    @billlee emm,这个也是我感觉稍微别扭的地方,如果这两个模块就是把它们看成一个独立的部分,10000/s 和 1111/s 这两个数值比较适合用什么名词来表示呢?
    lvzhiqiang
        3
    lvzhiqiang  
       2020-12-02 10:01:11 +08:00
    你可以理解为每秒处理的事务数,两个模块的合作处理是一个事务。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   981 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:18 · PVG 04:18 · LAX 13:18 · JFK 16:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.