根据线程数设置依据
最大线程数:原则上就是性能最高线程数,因为此时性能已经是最高,再设置比他大的线程数反而性能变低。极端情况下才会使用到最大线程数,正常情况下不应频繁出现超过核心线程数的创建。
核心线程数:基于性能考虑,及其他业务处理的最优效率考虑,估算平时的流量需要的线程数,设置核心线程数
阻塞队列:估算最大流量,设置阻塞队列长度
注意:需要通过压力测试来进行微调,只有经过压测的检验,才能最终保证的配置大小是准确的。
一般情况设置依据
CPU密集型:
核心线程数 = CPU核数 + 1
IO密集型:
核心线程数 = CPU核数 * 2
核心线程数 = CPU核数 / (1-阻塞系数)
博主认为,这种情况设置依据仅作初步设置依据,盲目性大。
Little's Law(利特尔法则)
定义:一个系统请求数等于请求的到达率与平均每个单独请求花费的时间之乘积
举例:假设服务器单核的,对应业务需要保证请求量(QPS):10 ,真正处理一个请求需要 1 秒,那么服务器每个时刻都有 10 个请求在处理,即需要 10 个线程