线程池数量设置多少合适(经验值)

线程池数量
    线程数的设置需要考虑三方面的因素,服务器的配置、服务器资源的预算和任务自身的特性。具体来说就是服务器有多少个CPU,多少内存,IO支持的最大QPS是多少,任务主要执行的是计算、IO还是一些混合操作,任务中是否包含数据库连接等的稀缺资源。线程池的线程数设置主要取决于这些因素。
 如果一个请求中,计算机操作需要5ms,DB需要100ms,对于一个8核的cpu来说需要设置多少个线程
    1.可以拆分为两个线程池,cpu密集型的是n+1个线程,,IO密集型的就是n*2
    2.如果不可以拆分,就是5/(5+100),cpu的利用率是在21%,1/(5/(100+5)) *n就是168,也就是需要的线程数   

那么如何获取n的值?(也就是cpu核心数目)

int  n = Runtime.getRuntime().availableProcessors();

最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目

虽说最佳线程数目算法更准确,但是线程等待时间和线程CPU时间不好测量,实际情况使用得比较少,一般用经验值就差不多了

QPS说明:
QPS即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

每秒查询率:
因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,即为QPS。
对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。

计算关系:
QPS = 并发量 / 平均响应时间
并发量 = QPS * 平均响应时间
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值