Linux CPU數(shù)量的判斷命令是什么
你們知道Linux CPU數(shù)量判斷命令嗎?不知道的話跟著學(xué)習(xí)啦小編一起來(lái)學(xué)習(xí)Linux CPU數(shù)量的判斷命令吧。
Linux CPU數(shù)量的判斷命令
其實(shí)只要 #include unistd.h long num = sysconf(_SC_NPROCESSORS_ONLN); 便可以獲得當(dāng)前CPU的數(shù)量。。。 判斷依據(jù): 1.具有相同core id的cpu是同一個(gè)core的超線程。 2.具有相同physical id的cpu是同一顆cpu封裝的
其實(shí)只要
#include <unistd.h>
long num = sysconf(_SC_NPROCESSORS_ONLN);
便可以獲得當(dāng)前CPU的數(shù)量。。。
判斷依據(jù):
1.具有相同core id的cpu是同一個(gè)core的超線程。
2.具有相同physical id的cpu是同一顆cpu封裝的線程或者cores。
英文版:
1.Physical id and core id are not necessarily consecutive but they are unique. Any cpu with the same core id are hyperthreads in the same core.
2.Any cpu with the same physical id are threads or cores in the same physical socket.
實(shí)例:
LunarPages的CPU信息:
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 3
cpu MHz : 3000.881
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips : 6006.73
processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 3
cpu MHz : 3000.881
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips : 5999.40
processor : 2
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 3
cpu MHz : 3000.881
cache size : 2048 KB
physical id : 3
siblings : 2
core id : 3
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips : 5999.08
processor : 3
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Xeon(TM) CPU 3.00GHz
stepping : 3
cpu MHz : 3000.881
cache size : 2048 KB
physical id : 3
siblings : 2
core id : 3
cpu cores : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips : 5999.55
顯示4個(gè)邏輯CPU,通過(guò)physical id,前面兩個(gè)邏輯cpu的相同,后面兩個(gè)的相同,所以有兩個(gè)物理CPU。前面兩個(gè)的 core id相同,后面的兩個(gè)core ID相同,說(shuō)明這兩個(gè)CPU都是單核。也就是說(shuō)兩個(gè)單核cpu,啟用了超線程技術(shù)。
通過(guò)intel的cpu的參數(shù)可以初步判斷 使用的是兩個(gè) Xeon奔騰4CPU ,有點(diǎn)差。。。。
如何獲得CPU的詳細(xì)信息:
linux命令:
#cat /proc/cpuinfo
用命令判斷幾個(gè)物理CPU,幾個(gè)核等:
邏輯CPU個(gè)數(shù):
# cat /proc/cpuinfo | grep 'processor' | wc -l
物理CPU個(gè)數(shù):
# cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
每個(gè)物理CPU中Core的個(gè)數(shù):
# cat /proc/cpuinfo | grep 'cpu cores' | wc -l
是否為超線程?
如果有兩個(gè)邏輯CPU具有相同的”core id”,那么超線程是打開的。
每個(gè)物理CPU中邏輯CPU(可能是core, threads或both)的個(gè)數(shù):
# cat /proc/cpuinfo | grep 'siblings'
其他特征:
目前intel新的多核心cpu都會(huì)在后面顯示具體的型號(hào)數(shù)字,例如:
model name : Intel(R) Xeon(R) CPU X3230 @ 2.66GHz
說(shuō)明是 Xeon 3230的cpu,而不顯示型號(hào)的具體數(shù)字的,大部分都是奔騰的CPU
很多主機(jī)商都騙人,用奔騰的cpu,卻說(shuō)是多核心的CPU。
探針看到的數(shù)據(jù):
類型:Intel(R) Xeon(TM) CPU 2.80GHz 緩存:1024 KB
類型:Intel(R) Xeon(TM) CPU 2.80GHz 緩存:1024 KB
類型:Intel(R) Xeon(TM) CPU 2.80GHz 緩存:1024 KB
類型:Intel(R) Xeon(TM) CPU 2.80GHz 緩存:1024 KB
沒有具體的型號(hào),緩存1M,一般都是奔騰系列的cpu,或者是intel假雙核的cpu,具體要根據(jù)上面說(shuō)的去判斷。新的多核心cpu都能看到具體的型號(hào)。
另外多核心的xeon的CPU,一般主頻都不高,達(dá)到2.8和3.0的只有很少的幾個(gè)高端CPU型號(hào),一般主機(jī)商不會(huì)用這么好的。
一些操作系統(tǒng)的最新版本已經(jīng)更新了 /proc/cpuinfo 文件,以支持多路平臺(tái)。如果您的系統(tǒng)中的 /proc/cpuinfo 文件能夠正確地反映出處理器信息,那么就不需要執(zhí)行上述步驟。反之,可采用本文中的信息進(jìn)行解釋。
/proc/cpuinfo 文件包含系統(tǒng)上每個(gè)處理器的數(shù)據(jù)段落。/proc/cpuinfo 描述中有 6 個(gè)條目適用于多內(nèi)核和超線程(HT)技術(shù)檢查:processor, vendor id, physical id, siblings, core id 和 cpu cores。
processor 條目包括這一邏輯處理器的唯一標(biāo)識(shí)符。
physical id 條目包括每個(gè)物理封裝的唯一標(biāo)識(shí)符。
core id 條目保存每個(gè)內(nèi)核的唯一標(biāo)識(shí)符。
siblings 條目列出了位于相同物理封裝中的邏輯處理器的數(shù)量。
cpu cores 條目包含位于相同物理封裝中的內(nèi)核數(shù)量。
如果處理器為英特爾處理器,則 vendor id 條目中的字符串是 GenuineIntel。
1.擁有相同 physical id 的所有邏輯處理器共享同一個(gè)物理插座。每個(gè) physical id 代表一個(gè)唯一的物理封裝。
2.Siblings 表示位于這一物理封裝上的邏輯處理器的數(shù)量。它們可能支持也可能不支持超線程(HT)技術(shù)。
3.每個(gè) core id 均代表一個(gè)唯一的處理器內(nèi)核。所有帶有相同 core id 的邏輯處理器均位于同一個(gè)處理器內(nèi)核上。
4.如果有一個(gè)以上邏輯處理器擁有相同的 core id 和 physical id,則說(shuō)明系統(tǒng)支持超線程(HT)技術(shù)。
5.如果有兩個(gè)或兩個(gè)以上的邏輯處理器擁有相同的 physical id,但是 core id 不同,則說(shuō)明這是一個(gè)多內(nèi)核處理器。cpu cores 條目也可以表示是否支持多內(nèi)核。
例如,如果系統(tǒng)包含兩個(gè)物理封裝,每個(gè)封裝中又包含兩個(gè)支持超線程(HT)技術(shù)的處理器內(nèi)核,則 /proc/cpuinfo 文件將包含此數(shù)據(jù)。
linux相關(guān)文章:
2.Linux教程