【发布时间】:2015-06-18 18:13:54
【问题描述】:
我正在使用 Ubuntu。 如何检查是否启用了超线程。 如果它被禁用了,我该如何启用它?
【问题讨论】:
标签: linux ubuntu hyperthreading
我正在使用 Ubuntu。 如何检查是否启用了超线程。 如果它被禁用了,我该如何启用它?
【问题讨论】:
标签: linux ubuntu hyperthreading
您可以检查是否启用了超线程
dmidecode -t processor|grep Count
如果“核心数”与“线程数”相同,例如:
核心数:32 线程数:32
HT 已禁用。
其他 HT 已启用。
标记“HTT”显示超线程的可能性。
【讨论】:
如果你有root权限
dmidecode -t processor | grep HTT
【讨论】:
你可以查看cpuinfo
grep -i 'ht' /proc/cpuinfo
ht 标志表示启用了超线程
【讨论】:
dmidecode -t processor 并检查设置了哪些标志
/proc/cpuinfo 还包含“ht”标志,如果超线程被禁用,你的 grep 总是匹配支持 HT 的 CPU - 即使它被禁用。
您可以检查伪文件/sys/devices/system/cpu/smt/active - 如果启用了超线程,它包含1,否则包含0。
外壳示例:
$ printf 'Hyperthreading '; \
sed -e s/1/enabled/ -e s/0/disabled/ /sys/devices/system/cpu/smt/active
您可以在 BIOS 中启用它 - 或在 Linux 中使用
# echo on > /sys/devices/system/cpu/smt/control
当且仅当
# cat /sys/devices/system/cpu/smt/control
返回off。
【讨论】:
lscpu 看到的。但我在互联网上读到,如果我启用了超线程,应该有 16 个线程。你的最后一个命令为我返回。但是,为什么我只有 8 个线程呢?
dmidecode 显示“核心数”和“线程数”都是 4。