PHP
是世界上最好的语言

QPS、PV 、RT(响应时间)之间的关系(转)

在进行系统性能压测和系统性能优化的时候,会涉及到QPS,PV,RT相关的概念,本文总结一下QPS,PV,RT之间的关系,放在博客备忘,本文参考了之前在淘宝工作时候的一些资料。

QPS是什么?
QPS:单个进程每秒请求服务器的成功次数
QPS = req/sec = 请求数/秒

QPS如何统计?
QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 * 请求时间 )

根据QPS推算PV:
单台服务器每天PV计算:
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8

根据QPS,PV推算服务器数量
服务器数量 = 每天总PV / 单台服务器每天总PV

峰值QPS和机器计算公式:
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
峰值时间每秒请求数(QPS):( 总PV数 * 80% ) / ( 每天秒数 * 20% )
峰值机器数量:峰值时间QPS / 单台机器的QPS

例子:
问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持? 答:139 / 58 = 3

最佳线程数:
性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加。这个阀值我们认为是最佳线程数。

为什么要找最佳线程数

过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助
找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳定的QPS输出
最佳线程数的获取:

通过用户慢慢递增来进行性能压测,观察QPS,响应时间
根据公式计算:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量
单用户压测,查看CPU的消耗,然后直接乘以百分比,再进行压测,一般这个值的附近应该就是最佳线程数量。
影响最佳线程数的主要因素:

IO
IO开销较多的应用其CPU线程等待时间会比较长,所以线程数量可以开的多一些,相反则线程数量要少一些,其实有两种极端,纯IO的应用,比如proxy,则线程数量可以开到非常大(实在太大了则需要考虑线程切换的开销),这种应用基本上后端(比如这个proxy是代理搜索的)的QPS能有多少,proxy就有多少。

CPU
对于耗CPU的计算,这种情况一般来讲只能开到CPU个数的线程数量。但是并不是说这种应用的QPS就不高,往往这种应用的QPS可以很高,因为耗CPU计算的应用,往往处理单次请求的时间会很短。

QPS和线程数的关系
在最佳线程数量之前,QPS和线程是互相递增的关系,线程数量到了最佳线程之后,QPS持平,不在上升,甚至略有下降,同时响应时间持续上升。

同一个系统而言,最佳线程数越多,QPS越高

赞(0)
本文链接:PHPBeta » QPS、PV 、RT(响应时间)之间的关系(转)

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    Hmm іt aрpeaгs lijкe үouhr site ate mmy fiгst comment (it was extremely long) so І guess Ӏ’ll just sum it up whаt I wrote and say, I’m tһoroughly enjoying your blog.
    I as well am аn aspiring blog writer but I’m sttill new to the whole thing.
    Dο you have any tips and hints for first-time blog writers?
    I’d defknitely appreciate it. https://discounteffexortoday.Blogspot.com/

    informasi selanjutnya1年前 (2018-07-29)回复
  2. #2

    Greetings, I think your website could be having browser compatibility issues.
    When I take a look at your site in Safari,
    it looks fine however when opening in IE, it’s got some overlapping issues.
    I simply wanted to provide you with a quick heads up!
    Apart from that, wonderful site! http://bikepola.com/user/profile/287972

    EnvytaLyfe CBD Reviews11个月前 (09-28)回复
  3. #3

    I have been browsing online more than 4 hours today, yet I
    never found any interesting article like yours.
    It’s pretty worth enough for me. In my view, if all
    website owners and bloggers made good content as you did, the internet
    will be a lot more useful than ever before.

    Cialis5个月前 (03-31)回复
  4. #4

    Howdy! Quick question that’s entirely off topic.
    Do you know how to make your site mobile friendly? My web
    site looks weird when browsing from my iphone
    4. I’m trying to find a template or plugin that might be
    able to fix this issue. If you have any recommendations,
    please share. Thank you!

    cialis4个月前 (04-23)回复