Cpu

我如何知道哪些處理器是物理核心?

  • September 13, 2019

我這裡有一個 Intel i7 2700k,我想知道如何分辨哪些處理器是物理的,哪些是虛擬的(即:超執行緒)。我目前正在執行一個 Conky 腳本來顯示我的 CPU 溫度、頻率和負載,但我不確定我是否做得對:

驚人的

我編寫了自己的腳本來獲取溫度和頻率i7z,但這些僅對應於物理核心。我目前正在像這樣顯示每個核心:

${cpu cpu1} ${lua display_temp 0} ${lua display_load 0}
${cpu cpu2}
${cpu cpu3} ${lua display_temp 1} ${lua display_load 1}
${cpu cpu4}
# ...

我不確定這是否正確,因為我有時會看到負載和溫度。在/proc/cpuinfo中,核心是如何排序的?首先是物理的,然後是虛擬的?每個物理核心然後是它的虛擬核心?它們是如何排序的?

您可以通過檢查每個 cpuinfo 條目來了解每個處理器核心:

processor       : 0
[...]
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 0

processor       : 1
[...]
physical id     : 0
siblings        : 8
core id         : 1
cpu cores       : 4
apicid          : 2 

processor       : 2
[...]
physical id     : 0
siblings        : 8
core id         : 2
cpu cores       : 4
apicid          : 4 

processor       : 3
[...]
physical id     : 0
siblings        : 8
core id         : 3
cpu cores       : 4
apicid          : 6

processor       : 4
[...]
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 1

[and so on]

physical id顯示處理器的標識符。除非您有一個多處理器設置(一台機器中有兩個獨立的物理處理器),否則它將始終為 0。

siblings顯示連接到同一物理處理器的處理器數量。

core id顯示目前核心的標識符,共cpu cores. 您可以使用此資訊來關聯哪個虛擬處理器進入單個核心。

apicid(和original apicid)顯示(虛擬)處理器的編號,由 bios 給出。

請注意,有 8 個兄弟姐妹和 4 個核心,因此每個核心有 2 個虛擬處理器。超執行緒中的“虛擬”或“真實”沒有區別。但是使用此資訊,您可以關聯哪些處理器來自同一核心。

引用自:https://unix.stackexchange.com/questions/57920