线程池数量以及队列长度如何分配?

2021-12-01  本文已影响0人  名字是乱打的

线上线程池配置是个小问题,但是不当的选用也可能会成为我们系统的瓶颈,甚至导致系统崩溃,因此这个问题不能忽略,且要实践出真知。

下面我们分析一波,怎么配置会让我们系统处理能力更快?

一.什么会影响系统处理能力?

首先我们几乎可以忽略队列本身占内存的情况,主要考虑多线程取队列数据竞争问题以及线程数量

1.关于线程数

而线程池以及线程数的选用真正线程数的选用主要看压测,看看处理时间

2.线程池的分配方式

单一变量原则,我们可以固定我们的线程数量来进行压测看看,比如说我们固定要创建64个线程,那么可以有以下几种线程池分配方式

3. 3种方式主要区别在哪里呢?

二. 压测实践出真知

我们先要找出最优情况,在没有慢请求的情况下64*1的速度必然是处理速度最快的,然后我们可以进行多种情况压测,看看谁最接近我们最优情况那就是哪个配置更适合我们。

通常情况下慢查询比较多可以少队列,多线程,如果查询速度非常快,可以偏向于用多队列单线程,选择方向即少竞争,少阻塞,最终配置要看压测,这玩意很玄,想直接数学计算不太行

上一篇 下一篇

猜你喜欢

热点阅读