目前最主流的服务器还是X86架构,所以拿X86进行介绍
参考书籍:
- 英特尔®64和IA-32架构软件开发人员手册
- 虚拟化技术原理与实现-part1-2
PC架构
处理器信息
Linux下查看CPU信息脚本
#! /bin/bash
# uniq:重复行只显示一次
# grep keyword:搜索含keyword的内容
# wc -l:输出文件行数
# 物理CPU个数:即为实际卡槽内的CPU个数
# CPU核数:CPU上可处理数据的芯片组数量
# 逻辑CPU个数:
# 不支持超线程:物理CPU个数*每个CPU核数
# 支持超线程:物理CPU个数*每个CPU核数* 2
# 超线程:就是利用特殊的硬件指令,把一个物理内核模拟成两个逻辑内核
#! /bin/bash
#逻辑CPU个数
echo "logical CPU number:"
cat /proc/cpuinfo | grep "processor" | wc -l
#物理CPU个数:
echo "physical CPU number:"
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
#物理CPU核数:
echo "core number in a physical CPU:"
cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F: '{print $2}'
#查看每个physical cpu上core id的数量,即为每个物理CPU上的core的个数
echo "core id number in a physical CPU:"
cat /proc/cpuinfo | grep "core id"
#是否为超线程?
# 如果有两个逻辑CPU core具有相同的”core id”,那么超线程是打开的。
# 当然也可知直接查询 /proc/cpuinfo 中的 "ht"这个flag
echo "if hyper threading:"
cat /proc/cpuinfo | grep flags | grep ht
#每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:
echo "logical CPU number in a physical CPU:"
cat /proc/cpuinfo | grep "siblings"
# 较新的系统上有util-linux这个包,里面有lscpu这个命令,可以打印出方便人阅读的CPU架构信息 (2016-02-01 update)
echo "ls CPU:"
lscpu