微码microcode
微码是什么 - 知乎
给cpu留一个补丁接口,当cpu内部有缺陷的时候,通过加载微码(Microcode),可以修复CPU的部分缺陷。
开启cpu微码microcode更新机制
linux 系统内如何查看当前CPU详细信息
/sys/devices/system/cpu/microcode
# 英特尔cpu
sudo apt-get install intel-microcode
# AMD的cpu
sudo apt-get install amd64-microcode
linux cpu微码microcode更新机制,可以通过
# Linux开启cpu微码microcode更新机制
sudo echo 1 > /sys/devices/system/cpu/microcode/reload
开启加载 /lib/firmware/intel-ucode
目录下的microcode来更新,具体详细解释可以查看内核microcode文档说明:microcode.rst - Documentation/x86/microcode.rst - Linux source code (v5.14.9) - Bootlin
如果输出中显示了微码版本信息
,说明微码已成功加载
。
# 查看当前加载的微码版本
dmesg | grep microcode
kernel_max
/sys/devices/system/cpu/kernel_max
: 内核可以使用的cpu 最大索引,该文件只读。
判断CPU核心数
参考: https://www.cnblogs.com/emanlee/p/3587571.html
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
# 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
判断CPU核心数示例脚本
#!/usr/bin/env bash
NUM_CPUS=$(nproc)
[ "$NUM_CPUS" != 0 ] || NUM_CPUS=1
NUM_DEVS=$NUM_CPUS
echo "$NUM_DEVS"