美文网首页
(十八)IO密集型和CPU密集型

(十八)IO密集型和CPU密集型

作者: hedgehog1112 | 来源:发表于2020-10-27 11:02 被阅读0次

一、计算密集型

    需非常多CPU计算资源,让每个CPU核心都参与计算,CPU性能充分利用,避免过多线程上下文切换,理想方案是:线程数 = CPU核数+1    

也可CPU核数*2,要看JDK版本,及CPU配置(服务器CPU有超线程)。1.8来增加并行计算,想线程数 = CPU内核线程数*2

二、IO密集型

    网络、磁盘 IO (与DB、缓存),一旦IO,线程就等待,结束才执行。多设线程数,等待时去做其它事,提高效率。

线程上下文切换有代价。IO密集型公式:线程数 = CPU核心数/(1-阻塞系数)     阻塞系数一般0.8~0.9,双核CPU理想线程数20动态线程池看压测情况

三、1000个并发线程,10台机器,每台机器4核,设计线程池大小

思路:CPU、IO密集型的情况。压测得合理参数配置。线程池动态调整。

    CPU 密集:减少上下文切换,核心线程数5,队列长100,最大线程数和核心线程数一致。

    IO 密集:分配一点核心线程数,更好利用 CPU,核心线程数 8,队列长100,最大线程池10

上面都是理论上的值。从核心线程数5 开始压测,对比结果,确定合适设置。极限:核心线程数和最大线程数都是 4,队列96,刚好100 请求

https://mp.weixin.qq.com/s/K5GThsd1dni1dzLAfOMnoA

https://www.cnblogs.com/thisiswhy/p/13877874.html

https://mp.weixin.qq.com/s/0j-g7F3YLqaS8ZVIIbkWgw

相关文章

网友评论

      本文标题:(十八)IO密集型和CPU密集型

      本文链接:https://www.haomeiwen.com/subject/enitvktx.html