cpu thread core lscpu

cpu thread core

lscpu

[root@localhost ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                24
On-line CPU(s) list:   0-23
Thread(s) per core:    2
Core(s) per socket:    6
座:                 2
NUMA 节点:         2
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              44
型号名称:        Intel(R) Xeon(R) CPU           E5645  @ 2.40GHz
步进:              2
CPU MHz:             2393.991
BogoMIPS:            4787.83
虚拟化:           VT-x
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           256K
L3 缓存:           12288K
NUMA 节点0 CPU:    0,2,4,6,8,10,12,14,16,18,20,22
NUMA 节点1 CPU:    1,3,5,7,9,11,13,15,17,19,21,23
[root@localhost ~]# nproc --all
24

含义

上面的信息,有几个比较有意思:

Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2

什么是Socket

Socket就是主板上插CPU的槽的数量

什么是Core

Core就是平时说的核,双核、四核等,就是每个物理CPU上的核数

什么是Thread

thread就是每个core上的硬件线程数,即超线程

对操作系统来说,其逻辑CPU的数量就是SocketCoreThread

总结

  1. socket是物理插槽,可以插入几个物理CPU
  2. 每个物理CPU可以分core,也就是几核,比如上面例子的8核。
  3. 每个core有多少Thread,支持多少个task并行计算。

代码

如果是java 程序,如何判定设置多少个thread呢?

int cores = Runtime.getRuntime().availableProcessors();
System.out.println("core:"+cores);

这句话的意思是:我们可以获得的逻辑CPU的个数(上面例子的24),在实际应用中,测试发现,当设置的线程数为逻辑cpu的个数时,cpu的使用率几乎100%;cpu的使用率基本和设置的逻辑cpu个数成比例。

参考

http://whosemario.github.io/2016/05/20/lscpu-cmd/
https://blog.csdn.net/wutongyuWxc/article/details/78732287

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值