描述
一个多资源的程序中,对资源的争用表现为对瓶颈资源的争用,性能会受制于瓶颈资源。
例:物理机器有6核心cpu, 业务的一个环节是写数据库. 数据库连接池的数量设置为4.则实际的处理情况是,20个请求进入后, cpu计算阶段一次最多处理6个请求(假定时间为5ms),其他14个请求会进行排队. 当请求达到数据库层面后, 一次又只能处理4个请求(假定时间为10ms),其他2个请求需要排队,则其实在处理一次请求的时间周期(15ms)内, 实际上可以处理的请求数只有4个.
公式
1、 最优线程数量=线程总时间/瓶颈资源时间 * 瓶颈资源并行数(上面的例子中, 15/10* 4 = 6)
(个人理解:该公式根据瓶颈资源的权比 和 瓶颈资源数量 进行计算)
2、 一个线程1S可以处理的请求数(1000/线程总时间, 上例中: 1000ms/15ms)
3、 所以得到qps计算公式: qps= 最优线程数量 * (1000/线程总时间)
由上面可以知道, 瓶颈资源, 是计算公式的关键. 所以需要找出影响系统性能的环节
参考:http://blog.csdn.net/taylorchan2016/article/details/51476909