Cpu
我如何知道哪些處理器是物理核心?
我這裡有一個 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 個虛擬處理器。超執行緒中的“虛擬”或“真實”沒有區別。但是使用此資訊,您可以關聯哪些處理器來自同一核心。