线程数设置和CPU数的关系

线程数设置和CPU数的关系,第1张

一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数)

如果是CPU密集型应用,则线程池大小设置为N+1

如果是IO密集型应用,则线程池大小设置为2N+1(因为io读数据或者缓存的时候,线程等待,此时如果多开线程,能有效提高cpu利用率)

如果一台服务器上只部署这一个应用并且只有这一个线程池,那么这种估算或许合理,具体还需自行测试验证。

但是,IO优化中,这样的估算公式可能更适合:

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

因为很显然,线程等待时间所占比例越高,需要越多线程。线程CPU时间所占比例越高,需要越少线程。

下面举个例子:

比如平均每个线程CPU运行时间为05s,而线程等待时间(非CPU运行时间,比如IO)为15s,CPU核心数为8,那么根据上面这个公式估算得到:((05+15)/05)8=32。这个公式进一步转化为:

最佳线程数目 = (线程等待时间与线程CPU时间之比 + 1) CPU数目

基本参数
产品类别 机架式
产品结构 1U
处理器
CPU类型 Intel 至强5500
CPU型号 Xeon E5504
CPU频率 2GHz
标配CPU数量 1颗
最大CPU数量 2颗
制程工艺 45nm
二级缓存 1MB
三级缓存 4MB
总线规格 QPI 48GT/s
CPU核心 四核(Gainestown)
CPU线程数 四线程
主板
主板芯片组 Intel 5520
扩展槽 2×第二代x8插槽
内存
内存类型 DDR3
内存容量 2GB
内存插槽数量 12
最大内存容量 96GB
存储
硬盘接口类型 SAS
标配硬盘容量 146GB
最大硬盘容量 3TB
内部硬盘架数 6个25 英寸SAS驱动器
RAID模式 RAID1
网络
网络控制器 两个Broadcom NetXtreme II 5709c双端口千兆网卡
显示系统
显示芯片 集成 Matrox G200,8MB共享显存
管理及其他
散热系统 标准冗余冷却
系统管理 Dell OpenManage
系统支持 Microsoft Windows Server
Microsoft Windows Server 2008,装有 HyperV
Microsoft Windows Storage Server
Novell Netware
Novell SUSE Linux
Red Hat Linux Enterprise
Sun SolarisTM


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12672927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存