查找一个linux服务器中CPU核数
接到这个任务第一反应是打开百度,输入“linux核数”关键字
不用查了,我直接告诉你:
拿我一台用作redis存储的线上机器来做实验
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l //查找linux 物理cpu个数
输出: 2
cat /proc/cpuinfo | grep 'cpu cores' | uniq //位于相同物理封装处理器中的内核数量(每颗物理cpu的核数)
输出: cpu cores : 24
cat /proc/cpuinfo | grep 'processor' | wc -l //逻辑处理的核数
输出: 96
根据输出我们得出结论是:
- 这台服务器 有 2 个物理cpu
- 每个cpu有 24个物理内核
- 每个cpu物理内核有2和逻辑处理器
- 服务器总共有96个逻辑处理器 (96 = 2 ✖️ 24 ✖️ 2)
proc/cpuinfo 中各个参数含义
cat /proc/cpuinfo
processor : 95
vendor_id : GenuineIntel
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Gold 6271C CPU @ 2.60GHz
stepping : 7
microcode : 0x5000024
cpu MHz : 2601.000
cache size : 33792 KB
physical id : 1
siblings : 48
core id : 29
cpu cores : 24
apicid : 123
initial apicid : 123
fpu : yes
fpu_exception : yes
cpuid level : 22
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 intel_ppin intel_pt ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts pku ospke avx512_vnni md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
bogomips : 5206.70
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
对应含义为:
processor :系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
vendor_id :CPU制造商
cpu family :CPU产品系列代号
model :CPU属于其系列中的哪一代的代号
model name:CPU属于的名字及其编号、标称主频
stepping :CPU属于制作更新版本
cpu MHz :CPU的实际使用主频
cache size :CPU二级缓存大小
physical id :单个CPU的标号
siblings :单个CPU逻辑物理核数
core id :当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores :该逻辑核所处CPU的物理核数
apicid :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu :是否具有浮点运算单元(Floating Point Unit)
fpu_exception :是否支持浮点计算异常
cpuid level :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags :当前CPU支持的功能
bogomips :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size :每次刷新缓存的大小单位
cache_alignment :缓存地址对齐单位
address sizes :可访问地址空间位数
我们一定要理解每个参数含义哦,这样就不用死记硬背命令查找cpu信息了
总结思考
查找超频怎么查找呢?
我们看这个参数 siblings:单个CPU逻辑物理核数
那么超频命令就自然诞生了
cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
输出:
cpu cores : 24
siblings : 48
如果 cpu cores 梳理 和 siblings梳理相等证明没有启用超频,否则就是启用了超频
看到这里相信大家完全理解了cpuinfo的信息了,想想还有哪些信息是可以通过这个配置文件找到呢?