Linux多核CPU的知識
CPU作為電腦的核心組成部份,它的好壞直接影響到電腦的性能。下面是學習啦小編帶來的關(guān)于Linux 多核CPU的知識的內(nèi)容,歡迎閱讀!
Linux 多核CPU的知識:
1. 在Linux下,如何確認是多核或多CPU:
#cat /proc/cpuinfo
如果有多個類似以下的項目,則為多核或多CPU:
processor : 0
......
processor : 1
2. Linux下,如何看每個CPU的使用率:
#top -d 1
之后按下1. 則顯示多個CPU
Cpu0 : 1.0%us, 3.0%sy, 0.0%ni, 96.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
3. 如何察看某個進程在哪個CPU上運行:
#top -d 1
之后按下f.進入top Current Fields設(shè)置頁面:
選中:j: P = Last used cpu (SMP)
則多了一項:P 顯示此進程使用哪個CPU。
Sam經(jīng)過試驗發(fā)現(xiàn):同一個進程,在不同時刻,會使用不同CPU Core.這應(yīng)該是Linux Kernel SMP處理的。
4. 配置Linux Kernel使之支持多Core:
內(nèi)核配置期間必須啟用 CONFIG_SMP 選項,以使內(nèi)核感知 SMP。
Processor type and features ---> Symmetric multi-processing support
察看當前Linux Kernel是否支持(或者使用)SMP
#uname -a
5. Kernel 2.6的SMP負載平衡:
在 SMP 系統(tǒng)中創(chuàng)建任務(wù)時,這些任務(wù)都被放到一個給定的 CPU 運行隊列中。通常來說,我們無法知道一個任務(wù)何時是短期存在的,何時需要長期運行。因此,最初任務(wù)到 CPU 的分配可能并不理想。
為了在 CPU 之間維護任務(wù)負載的均衡,任務(wù)可以重新進行分發(fā):將任務(wù)從負載重的 CPU 上移動到負載輕的 CPU 上。Linux 2.6 版本的調(diào)度器使用負載均衡(load balancing) 提供了這種功能。每隔 200ms,處理器都會檢查 CPU 的負載是否不均衡;如果不均衡,處理器就會在 CPU 之間進行一次任務(wù)均衡操作。
這個過程的一點負面影響是新 CPU 的緩存對于遷移過來的任務(wù)來說是冷的(需要將數(shù)據(jù)讀入緩存中)。
記住 CPU 緩存是一個本地(片上)內(nèi)存,提供了比系統(tǒng)內(nèi)存更快的訪問能力。如果一個任務(wù)是在某個 CPU 上執(zhí)行的,與這個任務(wù)有關(guān)的數(shù)據(jù)都會被放到這個 CPU 的本地緩存中,這就稱為熱的。如果對于某個任務(wù)來說,CPU 的本地緩存中沒有任何數(shù)據(jù),那么這個緩存就稱為冷的。
不幸的是,保持 CPU 繁忙會出現(xiàn) CPU 緩存對于遷移過來的任務(wù)為冷的情況。
6. 應(yīng)用程序如何利用多Core :
開發(fā)人員可將可并行的代碼寫入線程,而這些線程會被SMP操作系統(tǒng)安排并發(fā)運行。
另外,Sam設(shè)想,對于必須順序執(zhí)行的代碼??梢詫⑵浞譃槎鄠€節(jié)點,每個節(jié)點為一個thread.并在節(jié)點間放置channel.節(jié)點間形如流水線。這樣也可以大大增強CPU利用率。
相關(guān)閱讀推薦:
Linux 操作系統(tǒng)的誕生創(chuàng)始人林納斯·托瓦茲、發(fā)展和成長過程始終依賴著五個重要支柱:UNIX 操作系統(tǒng)、MINIX 操作系統(tǒng)、GNU計劃、POSIX 標準和Internet 網(wǎng)絡(luò)。1981 年IBM公司推出微型計算機IBM PC。1991年,GNU計劃已經(jīng)開發(fā)出了許多工具軟件,最受期盼的GNU C編譯器已經(jīng)出現(xiàn),GNU的操作系統(tǒng)核心HURD一直處于實驗階段,沒有任何可用性,實質(zhì)上也沒能開發(fā)出完整的GNU操作系統(tǒng),但是GNU奠定了Linux用戶基礎(chǔ)和開發(fā)環(huán)境。1991年初,林納斯·托瓦茲開始在一臺386sx兼容微機上學習minix操作系統(tǒng)。
1991年4月,林納斯·托瓦茲開始醞釀并著手編制自己的操作系統(tǒng)。1991 年4 月13 日在comp.os.minix 上發(fā)布說自己已經(jīng)成功地將bash 移植到了minix 上,而且已經(jīng)愛不釋手、不能離開這個shell 軟件了。1991年7月3日,第一個與Linux有關(guān)的消息是在comp.os.minix上發(fā)布的(當然此時還不存在Linux這個名稱,當時林納斯·托瓦茲的腦子里想的可能是FREAX,F(xiàn)REAX的英文含義是怪誕的、怪物、異想天開等)。
1991年的10月5日,林納斯·托瓦茲在comp.os.minix新聞組上發(fā)布消息,正式向外宣布Linux內(nèi)核的誕生(Freeminix-likekernel sources for 386-AT)。1993年,大約有100余名程序員參與了Linux內(nèi)核代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼大約有十萬行,用戶大約有10萬左右。
看了Linux 多核CPU的知識文章內(nèi)容的人還看:
5.怎么看cpu好壞
8.CPU的好壞