获取程序当前在哪个cpu运行的信息
首先获得程序进程号(如何为程序创建进程见之前的博客 服务器ILP实验的一些操作)
ps -aux|grep 程序名| grep -v grep
获取运行在哪个cpu,假设当前进程为21184
taskset -p 21184
得到
pid 551481 的当前亲和力掩码:ffffffff
显示结果的ffffffff,每个f是二进制1111,实际上是二进制32个低位均为1的bitmask,每一个1对应于1个CPU,表示该进程在32个CPU上运行
获取cpu详细信息
参考博客:认识cpu、核、进程与线程——备忘篇 ,CPU个数、核数、线程数
查看完整信息
cat /proc/cpuinfo
如以下是其中一个逻辑单元的详细信息:cpu cores说明这是个8核CPU,physical id说明该逻辑单元有几个cpu,一般认为一个核心可以独立运行一个进程,不同核心的资源是分隔开的
processor : 31
vendor_id : GenuineIntel
cpu family : 6
model : 106
model name : Intel(R) Xeon(R) Silver 4309Y CPU @ 2.80GHz
stepping : 6
microcode : 0xd000363
cpu MHz : 2800.000
cache size : 12288 KB
physical id : 1
siblings : 16
core id : 7
cpu cores : 8
apicid : 79
initial apicid : 79
fpu : yes
fpu_exception : yes
cpuid level : 27
wp : yes
仅查看cpu个数
grep -c ^processor /proc/cpuinfo
lscpu命令
参考博客 服务器cpu数、核数、线程数,认识cpu、核、进程与线程——备忘篇
lscpu 命令显示有关 CPU 体系结构的信息,这些信息是从 sysfs 和 /proc/cpuinfo 文件中收集的。这些信息包括 CPU 的数量、线程、内核、插槽、NUMA 节点、CPU 缓存、CPU 系列和型号等。
lscpu
得到以下信息:
架构: x86_64
CPU 运行模式: 32-bit, 64-bit
字节序: Little Endian
Address sizes: 46 bits physical, 57 bits virtual
CPU: 32 # 逻辑CPU数量
在线 CPU 列表: 0-31
每个核的线程数: 2 # 每个核拥有的线程数,说明每个核有2个线程。听说是使用了超线程技术,有一个是虚拟线程,一个核心单线程<实际性能<两个核心单线程
每个座的核数: 8 # 每个cpu的核数,说明每个cpu有8个核
座: 2 #物理CPU个数
NUMA 节点: 2
厂商 ID: GenuineIntel
CPU 系列: 6
型号: 106
型号名称: Intel(R) Xeon(R) Silver 4309Y CPU @ 2.80GHz
步进: 6
CPU MHz: 2800.000
CPU 最大 MHz: 3600.0000
CPU 最小 MHz: 800.0000
BogoMIPS: 5600.00
虚拟化: VT-x
L1d 缓存: 768 KiB
L1i 缓存: 512 KiB
L2 缓存: 20 MiB
L3 缓存: 24 MiB
NUMA 节点0 CPU: 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
NUMA 节点1 CPU: 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Mitigation; Clear CPU buffers; SMT vulnerable
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected