ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

线程池大小设置策略

2022-02-07 12:35:09  阅读:132  来源: 互联网

标签:策略 任务 线程 内存 设置 大小 CPU 连接池


决策变量

  • 有多少个CPU
  • 有多大内存
  • CPU 密集型,还是 I/O 密集型
  • 文件句柄数
  • 套接字句柄数
  • 任务是否需要像 JDBC 连接这样的稀缺资源

线程池大小过大、过小存在的问题

如果过大,大量的线程竞争相对很少的 CPU 和内存资源,导致更高的内存使用量,而且还可能耗尽资源。

如果过小,存在空闲的处理器无任务可执行,降低了吞吐量。

计算方法

依据稀缺资源的资源池大小

线程池大小上限 = 资源总可用数量 / 每个任务对资源的需求量

依据计算、等待时长

线程池大小上限 = CPU核心数 * CPU期望利用率 * (任务执行总时长 / 任务CPU计算时长)

如何估算计算、等待时长

  • 通过一些分析或临近工具来获得
  • 在某个基准负载下,分别设置不同大小的线程池来运行应用程序,并观察CPU利用率

其它事项

  • 不同类型的任务,应使用多个线程池
  • 线程池大小可能反过来限制连接池大小,如线程池中任务是数据库连接池的唯一使用者时,小的线程池不需要大的连接池

参考书籍:《Java并发编程实战》

标签:策略,任务,线程,内存,设置,大小,CPU,连接池
来源: https://www.cnblogs.com/lixuzhou/p/15867478.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有