TPS 是怎么计算的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
likefly
V2EX    程序员

TPS 是怎么计算的?

  •  
  •   likefly 2019-12-10 11:26:34 +08:00 7676 次点击

    网上每个文章写的都不一样,看晕了

    23 条回复    2019-12-11 20:39:34 +08:00
    likefly
        1
    likefly  
    OP
       2019-12-10 11:28:33 +08:00
    例如我现在压测并发 50,持续时间 10 分钟,执行了 64952 个请求,平均响应时间 461.59ms
    likefly
        2
    likefly  
    OP
       2019-12-10 11:34:54 +08:00
    我的理解是这样的,单个用户访问 1 秒,按平均响应时间来看,可以处理的事物数就是 1/0.461.59=2.166 。
    并发 50 就是 50*2.166=108.3。
    但是网上搜了都是说一大篇,各种不一样,有没有大佬来指点一下
    likefly
        3
    likefly  
    OP
       2019-12-10 11:37:16 +08:00
    或者是 64952 / 300 秒
    lhx2008
        4
    lhx2008  
       2019-12-10 11:40:05 +08:00 via Android   1
    一般就是写请求是 TPS,读请求是 QPS,然后是请求数 /总时间秒
    lhx2008
        5
    lhx2008  
       2019-12-10 11:42:16 +08:00 via Android
    平均响应时间的话,要看 95%的线或者 99%的线,有没有超过阈值,超过了可以考虑降低测试并发
    lhx2008
        6
    lhx2008  
       2019-12-10 11:42:55 +08:00 via Android
    最后是在响应时间比较合理的情况下的 QPS 最大值
    lhx2008
        7
    lhx2008  
       2019-12-10 11:43:59 +08:00 via Android
    @likefly #2 2.166 是你服务器是单线程是没错的,但是一般有框架都不会是单线程
    dengtongcai
        8
    dengtongcai  
       2019-12-10 11:45:47 +08:00 via iPhone
    mark 等大佬讲讲
    aleung
        9
    aleung  
       2019-12-10 12:25:26 +08:00 via Android   1
    TPS: transaction per second,不严谨的场合经常等同于 QPS/RPS: request per second。

    根据这个定义,你的测试的结果应该是 64952 /(60*10)
    laimeifeng1995
        10
    laimeifeng1995  
       2019-12-10 14:16:46 +08:00
    TPS 和你并发用户数不一定有太大关系 ,

    TPS = 请求数 /平均响应时间
    likefly
        11
    likefly  
    OP
       2019-12-10 15:14:58 +08:00
    @laimeifeng1995
    根据你的公式,那就是 64952 / 461.59 ?
    opengps
        12
    opengps  
       2019-12-10 15:29:55 +08:00
    兼容软件每秒都统计成功执行的事物数量,最后根据列表,最大最小平均值都拿出来参考下,一般都根据需要选取平均值
    laimeifeng1995
        13
    laimeifeng1995  
       2019-12-10 15:36:18 +08:00
    @likefly 对的,把单位划算为秒就可以了,
    你可以,找一些压测工具,看看他们的结果和这个计算结果是不是一样就知道了。
    1ffree
        14
    1ffree  
       2019-12-10 15:48:34 +08:00
    @laimeifeng1995 你是认真的吗?
        15
    laimeifeng1995  
       2019-12-10 15:54:30 +08:00
    @1ffree 你啥意思,我说错什么了吗。
    laimeifeng1995
        16
    laimeifeng1995  
       2019-12-10 15:57:51 +08:00
    @likefly 不好意思,刚刚看记错了。

    TPS = 请求数 *平均响应时间
    lhx2008
        17
    lhx2008  
       2019-12-10 16:03:25 +08:00 via Android
    @laimeifeng1995 想一下就知道,请求数是至少和总时间有关系的,你这么算,岂不是我测试时间越长,请求数越多,TPS 越高
    laimeifeng1995
        18
    laimeifeng1995  
       2019-12-10 16:08:37 +08:00   1
    @likefly

    刚刚拿 JMeter 手动测试了下、

    TPS = 总请求数 /请求时间

    Tips:
    我刚刚并发 50 个用户,请求了 30 秒 总请求数 21063 平均响应时间 70ms,TPS=QPS=700.3/sec

    对不起刚刚回复快了,没想清楚。
    laimeifeng1995
        19
    laimeifeng1995  
       2019-12-10 16:09:47 +08:00
    @lhx2008

    对不起,刚刚回复快了,脑子浆糊,挨打就要立正,错误就要认。
    likefly
        20
    likefly  
    OP
       2019-12-10 16:13:35 +08:00
    @laimeifeng1995
    我现在也是按照 总请求数 / 请求时间来算
    laimeifeng1995
        21
    laimeifeng1995  
       2019-12-10 16:20:57 +08:00
    @likefly 这样计算 ,没啥问题。

    TPS 或者说 QPS,这种吞吐量是一个浮动值。和并发用户数没啥太大关系。

    如果想测出最大 TPS 值,需要多几组数据对比才行。
    kid141261
        22
    kid1412621  
       2019-12-11 00:00:41 +08:00   1
    记得皓哥说过,不要看平均数,要看中值数
    pythonee
        23
    pythonee  
       2019-12-11 20:39:34 +08:00
    只知道性能测试是个专业活,有采样、统计的学问,还要避免引入干扰因素
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2799 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 00:03 PVG 08:03 LAX 17:03 JFK 20:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86