线程池的参数应该怎样设置呢?相信对于很多的人来说这也是一个比较难的问题,下面就让我们一起来解决一下,究竟应该如何设置线程池的参数才是最合理的吧!
首先在设置参数的时候,有以下的几点是我们需要考虑到的!
1、下游系统抗并发的能力
多线程给下游系统造成的并发等于你设置的线程数
例:
假如,是多线程访问数据库,那么就得考虑数据库的连接池大小设置,数据库并发太多影响其qps,会将数据库打挂等问题。
假如,是访问下游系统的接口,那么就得考虑下游系统是否可以抗得住这么多的并发量,不可以将下游系统打挂了。
2、CPU使用率
在线程数设置的比较大的时候,那么就会出现以下的几个问题:
(1)线程的初始化,切换,销毁等操作会消耗比较多的cpu资源,从而使得cpu利用率一直维持在比较高的水平。
(2)线程数比较大的时候,任务会短时间迅速执行,任务的集中执行会给cpu造成比较大的压力。
(3)任务的集中支持,会使得cpu的使用率呈现锯齿状,也就是说在短时间内cpu升高,之后,迅速下降到闲置状态。
cpu使用的不合理,应该减小线程数,让任务在队列等待,使得cpu的使用率应该持续稳定在一个合理,平均的数值范围。
所以,在cpu在够用的时候,不应该过大,注意,并不是越大越好。
这个时候,可以通过上线之后,观察机器的cpu使用率和cpu负载,观察这两个参数来判断线程数是否合理。
能够通过命令查看cpu使用率是不