如何估算性能测试中的TPS和并发用户数?

假设一个系统的业务有登录、浏览帖子、发送新帖、回复帖子,访问高峰是上午10点,日访问高峰PV约5208(含登录1300、浏览2706、发帖526、回帖676)。系统响应时间要求小于3秒,试计算此系统的TPS以及并发数。

如果分析业务量的数据是以PV来统计的,我们需要把PV转化为TPS。

实际上一个PV即一次对服务器的客户请求,可能还包含了很多资源请求,比如图片、样式、JS信息、文字等。而浏览器具有资源缓存功能,下次访问同样资源将不会再从远程服务器上下载,这大大加快了响应速度。如果我们使用代理服务器访问外网资源时,多数代理服务器也会缓存这些静态数据。也就是说浏览器与服务器之间的动态数据的 Size 会小于静态数据。

所以浏览器是否缓存了静态数据对性能测试影响明显。我们在做性能测试时,其中就有许多用户可能是新用户,在他们的浏览器上还没有缓存这些静态数据,为了更准确的模拟用户请求,我们有必要不缓存这些静态内容。所以性能测试中是否缓存访问的静态资源要根据业务情况而定。

本例中,我们把一个请求放在一个事务中来统计服务器的响应时间。这么说,一个PV即是一个事务(每秒的PV量并不直接等同于TPS,因为一次客户请求可能包含了很多资源请求。如果我们不关心页面刷新时请求资源的耗时,此时我们就把每秒PV数等同于TPS)。比如一个功能页面(浏览帖子)每秒会有10个PV,那么此功能的TPS即为10。

估算TPS

业务量一般要取系统业务高峰的值,才能代表系统的实际处理能力。系统在10点的访问高峰PV约5208,那么这个时段的TPS=5208/3600≈1.45吗?

答案是否定的,因为在一小时内的吞吐量未必是平均的。

如果我们采集到的业务量数据能够细分到每分钟,TPS就越准确。如果不能,可以按照二八原则。即80%的业务在20%的时间内完成,TPS=(520880%)/(360020%)≈5.8。

估算并发数

  1. 由TPS进行估算
  2. 由在线活动用户数估算
  3. 根据经验估算

这里我们采用第一种方法。

因为TPS=事务数/时间,假设所有的事务都来自不同的用户,那么并发数=事务数=TPS*时间。具体如下:

Vu(业务名称)=TPS(业务名称)*(Runtime+ThinkTime)

其中,Vu(业务名称)表示此业务的虚拟用户数,即并发数。RunTime是测试程序/脚本运行一次所消耗的时间,包括事务时间+非事务时间。ThinkTime是模拟用户思考或者填写表单消耗的时间。

下面是发帖动作的测试脚本伪代码(T、TT、AT表示时间,单位为秒。AT一般都是非常小的,包含在事务时间中,可以忽略)。Runtime=T1+···+T7;ThinkTime=TT1+TT2。

image

业内一般把 Think Time 设为3秒。测试需求中要求响应时间小于3秒,我们就以3秒为阀值(为什么只有事务页面是3秒,非事务时间是0.2秒???)。可得Vu=TPS(RunTime+ThinkTime)=5.8(T1+TT1+T2+T3+T4+T5+TT2+T6+T7)≈76。

如果只计算事务时间,Vu=TPST2=5.82≈12。

可以看到两者之间的Vu数量相差巨大。由于一次迭代的时间会大于事务的响应时间,如果在估算时不把非事务消耗的时间加入进去,计算出来的12个并发用户在测试执行时很有可能无法达到TPS=5.8的目标。

由于我们计算Vu时,使用的是系统TPS(登录、浏览、发帖、回帖合计),其中又以发帖业务消耗时间最长,所以计算出来的76个并发数实际上是系统业务的总并发数,需要按比例分配到各个业务。

业务名称 高峰业务量 TPS 并发数 响应时间 事务成功率
登录 1300 1.44 20 <3秒 >99%
浏览 2706 3.0 40 <3秒 >99%
发帖 526 0.58 7??? <3秒 >99%
回帖 676 0.75 10 <3秒 >99%
合计 5208 5.8 77 - -

实际上分配时由于有小数点,向上取整(是合计向上取整,还是单个业务向上取整???),所以76个并发用户分配后是77个。

并发数的计算说到底还是一个估算,在性能测试执行时需要根据实际情况调整。衡量性能的指标还是要参考TPS实际达到了多少,响应时间是多少,系统硬件(CPU、内存等)指标是否在限定范围内等要求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 17天搞定GRE单词。一本书。仿佛是做者的一个孩子,天下的父母对自己的孩子都不仅仅是爱。还像她成长,索性这本17天...
    竹子一件一件阅读 221评论 0 0
  • 想你的时候 我总忍不住傻傻地期待 这个时候 你的心里是否也和我一样满满地装着都是思念… 百无聊赖 手机拿起 又放下...
    喵咕唡阅读 401评论 0 5
  • 研究背景 当前,中国汽车保有量已经超过1.5亿辆,奠定了汽车售后市场的规模基础。全世界的品牌车型身影几乎都能在中国...
    e2b448ddb713阅读 525评论 0 3
  • 一些关于词语的感受和受限制的语言、语句,需要修正和改变。 对于“不”要改成“怎么才能” 就先把这一个限制式的词汇给...
    徐伟_1226阅读 275评论 0 0