工作线程数究竟要设置为多少 | 架构师之路

  1. 云栖社区>
  2. 阿里云MVP>
  3. 博客>
  4. 正文

工作线程数究竟要设置为多少 | 架构师之路

初商 2019-08-11 22:53:42 浏览149
展开阅读全文

一、需求缘起

Web-Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。

“工作线程数”的设置依据是什么,到底设置为多少能够最大化CPU性能,是本文要讨论的问题。

二、共性认知

在进行进一步深入讨论之前,先以提问的方式就一些共性认知达成一致。

问:工作线程数是不是设置的越大越好?

答:

肯定不是的

服务器CPU核数有限,能够同时并发的线程数有限,单核CPU设置10000个工作线程没有意义

线程切换是有开销的,如果线程切换过于频繁,反而会使性能降低

问:调用sleep()函数的时候,线程是否一直占用CPU?

答:不占用,等待时会把CPU让出来,给其他需要CPU资源的线程使用

网友评论

登录后评论
0/500
评论
初商
+ 关注
所属云栖号: 阿里云MVP