Linux查找超线程核心id

标签 linux linux-kernel affinity hyperthreading smp

我今天早上花了很多时间试图找出如何确定哪个处理器 ID 是超线程核心,但没有成功。

我希望找到此信息并使用 set_affinity() 将进程绑定(bind)到超线程或非超线程以分析其性能。

最佳答案

我发现了一个简单的技巧来完成我需要的事情。

cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list

如果第一个数字等于 CPU 编号(本例中为 0),则它是一个真正的内核,否则它就是一个超线程内核。

真实核心示例:

# cat /sys/devices/system/cpu/cpu1/topology/thread_siblings_list
1,13

超线程核心示例

# cat /sys/devices/system/cpu/cpu13/topology/thread_siblings_list
1,13

第二个示例的输出与第一个示例完全相同。但是我们正在检查 cpu13,第一个数字是 1,所以 CPU 13 这是一个超线程核心。

关于Linux查找超线程核心id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274585/

相关文章:

java - Minecraft 1.12,服务器未启动。 "Linux external server"

linux-kernel - 如何复制结构文件?

c - 修改 Ext4 文件系统写入磁盘的数据

c - 如何在 Windows 10 上通过 openMP 使用所有 NUMA 节点

command-line - 使用 cmd.exe 中的关联性启动可执行文件 (Windows XP)

linux - 如何只允许(少数)特定进程/线程在 Linux 的核心上运行

linux - 如何使用 depmod 使一个 Linux 内核模块依赖于另一个外部模块?

android - 运行与终端分离的 AVD 模拟器

python - Selenium 发送 key 在 Ubuntu 上无法使用/

linux - Linux 中的监听端口