linux

Linux CPUInfo怎样进行测试

小樊
40
2025-12-28 19:01:18
栏目: 智能运维

Linux CPUInfo 测试与核验方法

一、快速核验流程

二、常用命令与判定要点

命令 作用 关键字段/判定要点
lscpu 架构与拓扑汇总 Architecture、CPU(s)、Thread(s) per core、Core(s) per socket、Model name、L1d/L1i/L2/L3 cache
cat /proc/cpuinfo 每个逻辑CPU的原始参数 processor、model name、cpu MHz、cache size、flags(如 vmx/svm 表示虚拟化)
sudo dmidecode -t processor 物理插槽与硬件标识 Socket Designation、Version、Max/Current Speed、Core/Thread Count
top/htop 实时利用率与每核负载 1 展开各核;观察 %us、%sy、%id
cpufreq-info 调频与策略 current policy(min/max)current CPU frequency
nproc 可用逻辑核心数 直接输出数字,常用于 make -j$(nproc)
inxi -C / inxi -Fx 综合硬件信息 CPU 型号、核心/线程、缓存、温度 等扩展数据
lshw -class processor 硬件清单视图 description/model、插槽与缓存层级
cpuid CPUID 底层特性 brand 字符串、-r 原始寄存器值
**dmesg grep -i cpu** 启动阶段 CPU 检测日志

三、自检脚本示例

#!/usr/bin/env bash
echo "=== lscpu ==="; lscpu
echo -e "\n=== /proc/cpuinfo 型号与频率(去重)==="; 
grep -m1 "model name" /proc/cpuinfo; 
grep "cpu MHz" /proc/cpuinfo | sort -u
echo -e "\n=== 逻辑/物理核心数 ==="; 
echo "逻辑CPU总数: $(nproc)"; 
echo "物理CPU个数: $(grep -c ^processor /proc/cpuinfo)"; 
echo "物理核心总数: $(grep 'cpu cores' /proc/cpuinfo | sort -u | head -n1)"; 
echo "每核线程数: $(lscpu | awk '/Thread\(s\) per core/{print $NF}')"
echo -e "\n=== dmidecode 物理插槽与频率 ==="; 
sudo dmidecode -s processor-version 2>/dev/null || sudo dmidecode -t processor | egrep "Socket|Version|Max Speed|Current Speed"
echo -e "\n=== 虚拟化与指令集 ==="; 
grep -m1 "flags" /proc/cpuinfo | tr ' ' '\n' | egrep -i "vmx|svm|avx2|bmi2"
#!/usr/bin/env bash
cores_per_socket=$(lscpu | awk '/Core\(s\) per socket/{print $NF}')
threads_per_core=$(lscpu | awk '/Thread\(s\) per core/{print $NF}')
if [ "$threads_per_core" -gt 1 ]; then
  echo "超线程已启用: 每核 $threads_per_core 线程"
else
  echo "超线程未启用: 每核 $threads_per_core 线程"
fi
#!/usr/bin/env bash
echo "=== CPU 频率与策略 ==="; cpufreq-info | egrep "current policy|current CPU frequency"

四、常见问题与排查

0
看了该问题的人还看了