zoukankan      html  css  js  c++  java
  • [Z]QPS、PV和需要部署机器数量计算公式

    QPS = req/sec = 请求数/秒

    【QPS计算PV和机器的方式】

    QPS统计方式 [一般使用 http_load 进行统计]
    QPS = 总请求数 / ( 进程总数 *   请求时间 )
    QPS: 单个进程每秒请求服务器的成功次数

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

    服务器计算
    服务器数量 =   ceil( 每天总PV / 单台服务器每天总PV )

    【峰值QPS和机器计算公式】

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

    问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
    答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

    问:如果一台机器的QPS是58,需要几台机器来支持?
    答:139 / 58 = 3

     

     

    关于并发用户数和QPS,自己一直被这两个概念纠结,阅读了一下相关资料,总结如下:并发用户数和QPS两个概念没有直接关系,但是如果要说QPS时,一定需要指明是多少并发用户数下的QPS,否则豪无意义,因为单用户数的40QPS和20并发用户数下的40QPS是两个不同的概念。前者说明该应用可以在一秒内串行执行40个请求,而后者说明在并发20个请求的情况下,一秒内该应用能处理40个请求,当QPS相同时,越大的并发用户数,代表了网站并发处理能力越好。对于当前的web服务器,其处理单个用户的请求肯定戳戳有余,这个时候会存在资源浪费的情况(一方面该服务器可能有多个cpu,但是只处理单个进程,另一方面,在处理一个进程中,有些阶段可能是IO阶段,这个时候会造成CPU等待,但是有没有其他请求进程可以被处理)。而当并发数设置的过大时,每秒钟都会有很多请求需要处理,会造成进程(线程)频繁切换,反正真正用于处理请求的时间变少,每秒能够处理的请求数反而变少,同时用户的请求等待时间也会变大,甚至超过用户的心理底线。所以在最小并发数和最大并发数之间,一定有一个最合适的并发数值,在并发数下,QPS能够达到最大。但是,这个并发并非是一个最佳的并发,因为当QPS到达最大时的并发,可能已经造成用户的等待时间变得超过了其最优值,所以对于一个系统,其最佳的并发数,一定需要结合QPS,用户的等待时间来综合确定。

    图1 并发用户数,QPS,用户平均等待时间(响应时间关系图)

    上面这张图是应用其他人的关于并发用户数,QPS,用户平均等待时间的一张关系图,对于实际的系统,也应该是对于不同的并发数,进行多次测试,获取到这些数值后,画出这样一张图出来,以便于分析出系统的最佳并发用户数。

  • 相关阅读:
    155. 最小栈
    160. 相交链表
    PAT 1057 Stack
    PAT 1026 Table Tennis
    PAT 1017 Queueing at Bank
    PAT 1014 Waiting in Line
    PAT 1029 Median
    PAT 1016 Phone Bills
    PAT 1010 Radix
    PAT 1122 Hamiltonian Cycle
  • 原文地址:https://www.cnblogs.com/waytofall/p/4088923.html
Copyright © 2011-2022 走看看