在 Linux 下查看 cpuinfo 时,通常有两种常见场景:直接读取 /proc/cpuinfo 或 使用 lscpu。下面介绍几种常见“排序”需求和方法。
processor 编号排序/proc/cpuinfo 里每个逻辑 CPU 都有一个 processor : 0、processor : 1……
grep -E "processor|core id|physical id" /proc/cpuinfo | sort -n
或更直观地按逻辑 CPU 排序:
awk '/^processor/{p=$3} /^core id/{c=$4} /^physical id/{phy=$4} END{}' /proc/cpuinfo
grep -E "processor|physical id|core id" /proc/cpuinfo | \
awk 'BEGIN{RS="\n\n"} {print}' | sort -t: -k1 -n
更实用的写法:
paste <(grep physical id /proc/cpuinfo) \
<(grep core id /proc/cpuinfo) \
<(grep processor /proc/cpuinfo) | sort -V
lscpu 排序(推荐)lscpu -p=CPU,CORE,SOCKET,NODE
输出示例:
CPU CORE SOCKET NODE
0 0 0 0
1 1 0 0
2 2 0 0
可按列排序:
lscpu -p=CPU,CORE,SOCKET | sort -t, -k3,3 -k2,2 -k1,1 -n
grep "physical id" /proc/cpuinfo | sort | uniq -c
grep -E "processor|core id|physical id" /proc/cpuinfo | \
awk 'BEGIN{RS="\n\n"} {print $0}' | sort
lscpu --extended
或:
numactl --hardware
| 需求 | 命令 |
|---|---|
| 按逻辑 CPU 排序 | lscpu -p=CPU |
| 物理 CPU → 核心 | lscpu -p=CPU,CORE,SOCKET |
| 查看核心分布 | lscpu --extended |
| 统计物理 CPU | grep "physical id" /proc/cpuinfo | sort | uniq -c |
如果你有具体排序目标(比如“按核心温度”“按使用率”“按 NUMA 节点”),可以告诉我,我可以给你更精准的命令。