1、lscpu命令
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 80
On-line CPU(s) list: 0-79
Thread(s) per core: 2
Core(s) per socket: 20
Socket(s): 2
NUMA node(s): 2
当您运行
lscpu
命令时,它将返回有关您的计算机CPU的信息,例如:
- Architecture: CPU架构,这里是x86_64,表示您的CPU是64位架构。
- CPU op-mode(s): CPU操作模式,这里是32位和64位,表示您的CPU可以运行32位和64位的操作系统和应用程序。
- Byte Order: 字节顺序,这里是Little Endian,表示您的系统以小端字节序存储数据。
- CPU(s): CPU数量,这里是80,表示您的系统有80个CPU。
- On-line CPU(s) list: 在线CPU列表,这里是0-79,表示您的系统中所有CPU都处于在线状态。
- Thread(s) per core: 每个核心的线程数,这里是2,表示每个CPU核心可以同时处理两个线程。
- Core(s) per socket: 每个插槽的核心数,这里是20,表示每个CPU插槽中有20个核心。
- Socket(s): 插槽数量,这里是2,表示您的系统中有两个CPU插槽。
- NUMA node(s): NUMA节点数量,这里是2,表示您的系统中有两个NUMA节点。
与标题对应的参数那就是下面这三个:
- CPU(s): 80 # 表示逻辑CPU的数量,这里是80,它等于物理CPU数量乘以每个物理CPU的核心数。这个值包括了超线程技术创建的虚拟逻辑CPU核心。(虚拟化逻辑CPU)
Thread(s) per core: 2 # 每个核心的线程数,这里是2,表示每个CPU核心可以同时处理两个线程。- Core(s) per socket: 20 # 表示每个物理CPU的核心数,这里是20,表示每个物理CPU有20个核心。(这个主机的总CPU核数为20*2=40,单个物理CPU总核数)
- Socket(s): 2 # 表示物理CPU的数量,这里是2,表示您的系统中有两个物理CPU。(物理CPU个数)
根据这几个参数通过shell命令取值:
# 虚拟化逻辑vCPU:
lscpu | grep "^CPU(s)"
#物理CPU个数:
lscpu | grep "^Socket(s)"
# 物理CPU总核数:
expr $(lscpu | grep "^Socket(s)" | cut -d : -f 2) \* $(lscpu | grep "Core(s) per socket" | cut -d : -f 2)
在shell中可以使用expr命令实现乘法,比如expr 2 * 3 就是2乘以3到的6
注:被这几个名称搞得七荤八素,有什么问题希望打到评论区,灰常感谢!