我有一个服务器,它是一个启用超线程的四核i-7。内核将其识别为8个cpus,这是它应该做的。我想在这台机器上创建几个虚拟主机。virt-manager允许我选择在哪台机器上使用哪台cpus。我希望对此进行配置,以便将超级线程对中的两个cpus分配给同一台虚拟机。这样,由于超线程的原因,一台在重载下的机器将不会通过共享一个核心来影响另一个虚拟机。但是我确实希望每个vm都可以使用超线程,因为我正在运行涉及大量并行化的任务。
那么,如何判断内核识别的哪些cpus是一对呢?我怀疑cpu 0和cpu 1是一对,然后是cpu 2和cpu 3,等等,但我不知道如何测试/确认。
发布于 2011-01-28 02:53:52
这个链接描述了如何匹配物理id、核心id和同级计数来识别/proc/cpuinfo中的哪些条目位于同一个核心上,但我不能断言它的准确性。它看起来也类似于这个问题。
发布于 2012-11-25 06:47:22
cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
将打印特定物理CPU/核心的同级核心的逗号分隔列表。我以cpu0 (第一个核心)为例。
同样的信息可以从/proc/cpuinfo中的“核心id”字段中提取(谢谢user61849)。
https://serverfault.com/questions/227920
复制相似问题