性能压测的情况下,起初随着用户数的增加,QPS会上升,当到了一定的阀值之后,用户数量增加QPS并不会增加,或者增加不明显,同时请求的响应时间却大幅增加。这个阀值我们认为是最佳线程数。
为什么要找最佳线程数:
1.过多的线程只会造成,更多的内存开销,更多的CPU开销,但是对提升QPS确毫无帮助
2.找到最佳线程数后通过简单的设置,可以让web系统更加稳定,得到最高,最稳定的QPS输出
最佳线程数的获取:
1、通过用户慢慢递增来进行性能压测,观察QPS,响应时间
2、根据公式计算:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量
3、单用户压测,查看CPU的消耗,然后直接乘以百分比,再进行压测,一般这个值的附近应该就是最佳线程数量。
影响最佳线程数的主要因素:
1、IO
2、CPU
根据公式:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量
一般来说是IO和CPU。IO开销较多的应用其CPU线程等待时间会比较长