[轉]解決系統CPU個數識別不正確的問題

msdnchina發表於2011-11-12
http://blog.chinaunix.net/space.php?uid=2469966&do=blog&id=2595410
感謝原作者

(2010-04-19 17:09)
分類: LINUX系統管理
目前 伺服器上配置的CPU是越來越多,並且,單個物理CPU中也包括了更多的核心。以Intel E5504為例,一個CPU就擁有4個核心,併發的速度得到明顯的提高。其中,部分CPU還同時擁有超執行緒技術,這樣,系統中識別出來的核心數量會更多。 要讓系統正確的識別出所有可用的CPU核心,系統使用Linux kernel是個關鍵,例如使用smp或largesmp,開啟kernel編譯時的支援等。當然,kernel越新,相容性通常會更好。
但 我接下來要舉出的案例,確與kernel關係不大,因此該kernel(紅旗 DC Server 5.0 SP3)已經被確認可支援多大64個物理core,而且支援雙核、四核、六核等架構。該問題的解決過程,由zhengyiyun#redflag- linux.com提供,我覺得相當值得借鑑。

一、故障現象
伺服器型號為:浪潮NF5220
板載一顆Intel E5504的CPU,但安裝紅旗 DC Server 5.0 SP3後,發現從系統中只能看到2個CPU:
引用
# cat /proc/cpuinfo|grep processor
processor : 0
processor : 1

二、故障處理
1、使用dmidecode分析cpu資訊

# dmidecode |grep -A42 "Processor"|more

-A42表示顯示grep匹配後,緊跟下面42行的資訊(After),可根據dmidecode命令顯示的具體資訊內容輸入。

從該命令中,發現有如下資訊:
(1)共中第三個是Status: Populated, Enabled這表明只認到一個CPU, 其它三個認到了,但是沒有啟用。其它三個是Status: Populated, Disabled By User
(2)CPU資訊:
引用
Version:Intel(R) Xeon(R) CPU E5504 @ 2.00GHz
......
Status: Populated, Disabled By BIOS

提示的很清楚,被BIOS禁用,還有一個是被User禁用。當然,Bios禁用,也有可能是主機板問題,比如介面故障造成這種現象。
(3)檢視dmesg內容,dmesg裡面也是顯示只啟用了2個CPU: “Brought up 2 CPUs” 。

二、解決故障
檢視BIOS裡的設定。
在bios中cpu配置中存在active Processor cores 2,將其改為active Processor cores all
改完BIOS之後,儲存。建議斷電休息一分鐘(把整個機器斷電一分鐘以上)。
重新啟動伺服器後,檢視cpu顯示正常,問題解決。

※ 當然,這僅是一個關於CPU的案例,我只是希望透過這個案例告訴大家,類似的硬體識別問題,除懷疑Linux kernel不支援該硬體外,還需要考慮物理硬體本身的配置、設定等。不同的作業系統,例如Windows、Linux,其識別的結果也可能存在差異的, 但不妨可作為考慮資訊之一。

三、關於cpuinfo
使用cat命令檢視/proc/cpuinfo,可得到當前伺服器上CPU的物理資訊。由於從top等命令中,是無法識別物理CPU數量、核心數量、超執行緒數量等準確的資訊的,因此請特別留意一下。
引用
processor : 0 ←系統顯示的邏輯CPU數量,包括超執行緒、多核等複合後的結果
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU E5504 @ 2.00GHz
stepping : 5
cpu MHz : 2000.455
cache size : 4096 KB
physical id : 1 ←這是板載物理實際CPU的ID號,即實際插入主機板socket的CPU編號(從外面看到的)
siblings : 2 ←這是板載物理CPU中邏輯CPU的數量,如果多核的核心支援超執行緒,則為核心*2
core id : 8 ←這是每個核心的ID,多核的編號
cpu cores : 2 ←這是單個板載物理CPU中包含的核心個數,多核指的就是這個數量(從外面看不到的)
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc pni monitor ds_cpl est tm2 xtpr popcnt
bogomips : 4002.74
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/161195/viewspace-1056292/,如需轉載,請註明出處,否則將追究法律責任。

相關文章