Virtualization

是否可以分辨出哪些 cpu 是同一個核心的超執行緒?

  • November 25, 2012

我有一台啟用了超執行緒的四核 i-7 伺服器。核心將其辨識為 8 cpu,這是應該的。我想創建幾個在這台機器上執行的虛擬主機。virt-manager 讓我選擇在哪台機器上使用哪個 cpu。我想對此進行配置,以便將超執行緒對中的兩個 cpu 分配給同一虛擬機。這樣,由於超執行緒,一台機器在重負載下不會通過共享單個核心來影響另一台虛擬機。但我確實希望每個 vm 都可以使用超執行緒,因為我正在執行涉及大量並行化的任務。

那麼,我如何判斷核心辨識出的 CPU 是一對?我會懷疑 cpu 0 和 cpu 1 配對,然後是 cpu 2 和 cpu 3,依此類推,但我不確定如何測試/確認。

此連結描述瞭如何匹配物理 id、核心 id 和兄弟計數,以辨識 /proc/cpuinfo 中的哪些條目位於同一核心上,但我不能對其準確性做出任何聲明。它看起來也類似於這個問題

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

將為特定的物理 CPU/核心列印以逗號分隔的兄弟核心列表。我以 cpu0(第一個核心)為例。

可以從 /proc/cpuinfo 中的“core id”欄位中提取相同的資訊(感謝 user61849)。

引用自:https://serverfault.com/questions/227920