关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » HTML5 »并发用户数与TPS之间的关系

    并发用户数与TPS之间的关系

    2014-10-13 00:00:00 出处:kickxxx的专栏
    分享

    1. 背景

    在做性能测试的时候,很多人都用并发用户数来衡量系统的性能,觉得系统能支撑的并发用户数越多,系统的性能就越好;对TPS不是非常理解,也根本不知道它们之间的关系,因此非常有必要进行解释。

    2. 术语定义

    并发用户数:指的是现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(virutal User),注意并发用户数跟注册用户数、在线用户数有很大差别的,并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。

    TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个非常重要的指标,

    3. Vu和TPS换算

    简单例子:在术语中解释了TPS是每秒事务数,但是事务时要靠虚拟用户做出来的,假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1;假如某笔业务响应时间是1ms,那么1个用户在1秒内能完成1000笔事务,TPS就是1000了;假如某笔业务响应时间是1s,那么1个用户在1秒内只能完成1笔事务,要想达到1000TPS,至少需要1000个用户;因此可以说1个用户可以产生1000TPS,1000个用户也可以产生1000TPS,无非是看响应时间快慢。

    复杂公式:

    试想一下复杂场景,多个脚本,每个脚本里面定义了多个事务(例如一个脚本里面有100个请求,我们把这100个连续请求叫做Action,只有第10个请求,第20个请求分别定义了事务10和事务20)具体公式如下:

    符号代表意义:

    Vui表示的是第i个脚本使用的并发用户数

    Rtj表示的是第i个脚本第j个事务花费的时间,此时间会影响整个Action时间

    Rti表示的是第i个脚本一次完成所有操作的时间,即Action时间

    n 表示的是第n个脚本

    m 表示的是每个脚本中m个事务

     

    那么第j个事务的TPS = Vui/Rti

    总的TPS=

    4. 如何获取Vu和TPS

    并发用户数(Vu)获取

    新系统:没有历史数据作参考,只能通过业务部门进行评估。

    旧系统:对于已经上线的系统,可以选取高峰时刻,在一定时间内使用系统的人数,这些人数认为属于在线用户数,并发用户数取10%就可以了,例如在半个小时内,使用系统的用户数为10000,那么取10%作为并发用户数基本就够了。

    TPS获取

    新系统:没有历史数据作参考,只能通过业务部门进行评估。

    旧系统:对于已经上线的系统,可以选取高峰时刻,在5分钟或10分钟内,获取系统每笔交易的业务量和总业务量,按照单位时间内完成的笔数计算出TPS,即业务笔数/单位时间(5*60或10*60)

    5. 如何评价系统的性能

    针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,假如必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到脚本中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。

    6. 相关案例

    通过大量性能测试我们发现不需要用上万的用户并发去进行测试,只要系统处理业务时间足够快,几百个用户甚至几十个用户就可以达到目的。另外咨询很多专家做过的性能测试项目,基本都没有超过5000用户并发。

    因此对于大型系统、业务量非常高、硬件配置足够多的情况下,5000用户并发就足够了;对于中小型系统,1000用户并发就足够了。

    7. 性能测试策略

    做性能测试需要一套标准化流程及测试策略,并发用户数只是指标考虑的一个,在做负载测试的时候,一般都是按照梯度施压的方式去加用户数,而不是在没有预估的情况下,一次加几万个用户,,交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内,这样做没有多大的意义,这就好比“有多少钱可以干多少事”一样,需要选择相关的策略。

    8. Loadrunner VS PTS

    从下图对比项可以看出,PTS比Loadrunner(LR)更能让客户接受。

    方向 对比项 Loadrunner PTS 备注

    基础设施

    被测系统软硬件环境需要额外购买? 需要 不需要 基础设施软硬件由阿里云提供,只需要购买服务
    压力机环境需要额外购买? 需要 不需要 基础设施软硬件由PTS提供,只需要购买服务

    费用

    费用 非常贵 便宜,按需收费 商业化工具License非常贵

    功能

    功能 强大 较强大 LR很多功能基本上用不到,没必要大马拉小车

    易用性

    操作、学习等 困难 容易 LR不易上手

    稳定性

    系统稳定性 较稳定 非常稳定 LR压测过程中经常出现莫名其妙错误

    场景模拟

    场景模拟条件 较真实 非常真实 PTS分布在全国各地的分布式集群可以真实模拟出现实场景,而LR不太容易模拟,即使可以的话,控制机和压力机通信经常掉线

    9. 总结

    系统的性能由TPS决定,跟并发用户数没有多大关系。在同样的TPS下,可以由不同的用户数去压(通过加思考时间设置)。

    系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。

    建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。

    一般情况下,大型系统(业务量大、机器多)做压力测试,5000个用户并发就够了,中小型系统做压力测试,1000个用户并发就足够了。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    电脑屏幕不小心竖起来了?别慌,快捷键搞定

    Destoon 模板存放规则及语法参考

    Destoon系统常量与变量

    Destoon系统目录文件结构说明

    Destoon 系统安装指南

    Destoon会员公司主页模板风格添加方法

    Destoon 二次开发入门

    Microsoft 将于 2026 年 10 月终止对 Windows 11 SE 的支持

    Windows 11 存储感知如何设置?了解Windows 11 存储感知开启的好处

    Windows 11 24H2 更新灾难:系统升级了,SSD固态盘不见了...

    IT头条

    Synology 更新 ActiveProtect Manager 1.1 以增强企业网络弹性和合规性

    00:43

    新的 Rubrik Agent Cloud 加速了可信的企业 AI 代理部署

    00:34

    宇树科技 G1人形机器人,拉动一辆重达1.4吨的汽车

    00:21

    Cloudera 调查发现,96% 的企业已将 AI 集成到核心业务流程中,这表明 AI 已从竞争优势转变为强制性实践

    02:05

    投资者反对马斯克 1 万亿美元薪酬方案,要求重组特斯拉董事会

    01:18

    技术热点

    大型网站的 HTTPS 实践(三):基于协议和配置的优化

    ubuntu下右键菜单添加新建word、excel文档等快捷方式

    Sublime Text 简明教程

    用户定义SQL Server函数的描述

    怎么在windows 7开始菜单中添加下载选项?

    SQL Server 2016将有哪些功能改进?

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。