知识扫盲:超线程技术( HT, Hyper-Threading)就是对CPU的虚拟化
一.综判断系统当前是否开启超线程
判断系统是否开启超线程主要看三个数据
如果系统没有开启超线程,系统cpu线程数=物理cpu个数 * 每个cpu的逻辑核数 * 1
如果系统开启了超线程,系统cpu线程数=物理cpu个数 * 每个cpu的逻辑核数 * 2
二.查看系统信息
1.查看物理cpu的个数
cat /proc/cpuinfo |grep "physical id"|sort|uniq
physical id : 0
physical id : 1
2.查看每个物理cpu的逻辑核数
cat /proc/cpuinfo |grep cores|uniq
cpu cores : 12
3.查看系统整个cpu的线程数
cat /proc/cpuinfo |grep processor|wc -l
48
如果有两个逻辑CPU具有相同的"core id",那么超线程是打开的。可以根据以下原则,来判断是否支持HT技术。
如果"siblings"和"cpu cores"一致,则说明不支持超线程,或者超线程未打开。
如果"siblings"是"cpu cores"的两倍,则说明支持超线程,并且超线程已打开。
cat /proc/cpuinfo |grep "sibling"|uniq
cat /proc/cpuinfo | grep "cpu cores"|uniq
三 CPU孤立
1.孤立配置
vim /etc/default/grub
在此行内容追加 GRUB_CMDLINE_LINUX="isolcpus=28,29,30,31,32,33,34,35" 隔离28-35核心
2.更新配置
update-grub
或者
grub2-mkconfig -o /boot/grub2/grub.cfg 更新配置
3. reboot 重启
4. cat /proc/cmdline 查看结果
5. 使用孤立CPU
taskset -c 28,29,30,31 python xx.py
taskset -pc pid 确认哪些cpu被孤立了