Linux 下多核CPU知識

2021-06-14 00:07:51 字數 1720 閱讀 6127

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設定頁面:

選中:j: p  = last used cpu (smp)

則多了一項:p 顯示此程序使用哪個cpu。

sam經過試驗發現:同乙個程序,在不同時刻,會使用不同cpu core.這應該是linux kernel smp處理的。

4. 配置linux kernel使之支援多core:

核心配置期間必須啟用config_smp選項,以使核心感知 smp。

processor type and features  ---> symmetric multi-processing support

察看當前linux kernel是否支援(或者使用)smp

#uname -a

5. kernel 2.6的smp負載平衡:

在 smp 系統中建立任務時,這些任務都被放到乙個給定的 cpu 執行佇列中。通常來說,我們無法知道乙個任務何時是短期存在的,何時需要長期執行。因此,最初任務到 cpu 的分配可能並不理想。

為了在 cpu 之間維護任務負載的均衡,任務可以重新進行分發:將任務從負載重的 cpu 上移動到負載輕的 cpu 上。linux 2.6 版本的排程器使用負載均衡(load balancing) 提供了這種功能。每隔 200ms,處理器都會檢查 cpu 的負載是否不均衡;如果不均衡,處理器就會在 cpu 之間進行一次任務均衡操作

這個過程的一點負面影響是新 cpu 的快取對於遷移過來的任務來說是冷的(需要將資料讀入快取中)。

記住 cpu 快取是乙個本地(片上)記憶體,提供了比系統記憶體更快的訪問能力。如果乙個任務是在某個 cpu 上執行的,與這個任務有關的資料都會被放到這個 cpu 的本地快取中,這就稱為熱的。如果對於某個任務來說,cpu 的本地快取中沒有任何資料,那麼這個快取就稱為冷的。

不幸的是,保持 cpu 繁忙會出現 cpu 快取對於遷移過來的任務為冷的情況。

6. 應用程式如何利用多core :

開發人員可將可並行的**寫入執行緒,而這些執行緒會被smp作業系統安排併發執行。

另外,sam設想,對於必須順序執行的**。可以將其分為多個節點,每個節點為乙個thread.並在節點間放置channel.節點間形如流水線。這樣也可以大大增強cpu利用率。

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...

Linux下檢視CPU資訊, 包括位數和多核資訊

以redhat6.0為例 檢視當前作業系統發行版資訊 cat etc issue red hat enterprise linux server release 6.0 santiago kernel r on an m 檢視cpu型號 cat proc cpuinfo grep name cut ...

Linux下檢視CPU資訊, 包括位數和多核資訊

1.檢視linux的作業系統和硬體cpu位數 linux 作業系統的位數檢視 getconf long bit如果是32表示是32位 eg root db getconf long bit 32 root db getconf word bit 32或者通過cat proc cpuinfo也可以檢視...