我有一个服务器,是一个启用了超线程function的四核i-7。 内核认为这是8 cpu,因为它应该。 我想创build一个在这台机器上运行的几个虚拟主机。 virt-manager让我select在哪台机器上使用哪个cpus。 我想configuration这个,以便将超线程对中的两个cpus分配给同一个虚拟机。 这样一台机器在重负载的情况下不会因为超线程而共享一个内核而影响另一台虚拟机。 但我确实希望每个虚拟机都可以使用超线程,因为我正在运行涉及严重并行化的任务。
那么,我怎样才能知道内核认识哪一个cpus是一对呢? 我怀疑cpu 0和cpu 1做一对,然后cpu 2和cpu 3,等等,但我不知道如何testing/确认。
此链接描述了如何匹配物理ID,核心ID和兄弟计数,以确定/ proc / cpuinfo中的哪些条目位于同一个核心上,但我不能声明其准确性。 它也看起来类似于这个问题 。
cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
将打印特定物理CPU /内核的同级内核的逗号分隔列表。 我以cpu0(第一核心)为例。
相同的信息可以从/ proc / cpuinfo中的“core id”字段中提取(谢谢user61849)。