本篇內(nèi)容介紹了“CentOS下如何查看每個(gè)CPU的使用率”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為甕安企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站制作,甕安網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
1. Linux下,如何看每個(gè)CPU的使用率:
#top -M
之后按下數(shù)字1. (或者top之后按1也一樣)則顯示多個(gè)CPU 的信息,和內(nèi)存信息:
[root@testpc ~]# top -M
top - 15:38:40 up 2 days, 2:05, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.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
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3725.047M total, 263.312M used, 3461.734M free, 45.711M buffers
Swap: 8095.992M total, 0.000k used, 8095.992M free, 55.977M cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 19228 1512 1224 S 0.0 0.0 0:00.61 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
2. 在Linux下,如何確認(rèn)是多核或多CPU:
#cat /proc/cpuinfo
如果有多個(gè)類似以下的項(xiàng)目,則為多核或多CPU:
processor : 0
......
processor : 1
3. 如何察看某個(gè)進(jìn)程在哪個(gè)CPU上運(yùn)行:
#top -d 1
之后按下f.進(jìn)入top Current Fields設(shè)置頁面:
選中:j: P = Last used cpu (SMP)
則多了一項(xiàng):P 顯示此進(jìn)程使用哪個(gè)CPU。
Sam經(jīng)過試驗(yàn)發(fā)現(xiàn):同一個(gè)進(jìn)程,在不同時(shí)刻,會使用不同CPU Core.這應(yīng)該是Linux Kernel SMP處理的。
4. 配置Linux Kernel使之支持多Core:
內(nèi)核配置期間必須啟用CONFIG_SMP選項(xiàng),以使內(nèi)核感知 SMP。
Processor type and features ---> Symmetric multi-processing support
察看當(dāng)前Linux Kernel是否支持(或者使用)SMP
#uname -a
5. Kernel 2.6的SMP負(fù)載平衡:
在 SMP 系統(tǒng)中創(chuàng)建任務(wù)時(shí),這些任務(wù)都被放到一個(gè)給定的 CPU 運(yùn)行隊(duì)列中。通常來說,我們無法知道一個(gè)任務(wù)何時(shí)是短期存在的,何時(shí)需要長期運(yùn)行。因此,最初任務(wù)到 CPU 的分配可能并不理想。
為了在 CPU 之間維護(hù)任務(wù)負(fù)載的均衡,任務(wù)可以重新進(jìn)行分發(fā):將任務(wù)從負(fù)載重的 CPU 上移動到負(fù)載輕的 CPU 上。Linux 2.6 版本的調(diào)度器使用負(fù)載均衡(load balancing) 提供了這種功能。每隔 200ms,處理器都會檢查 CPU 的負(fù)載是否不均衡;如果不均衡,處理器就會在 CPU 之間進(jìn)行一次任務(wù)均衡操作。
這個(gè)過程的一點(diǎn)負(fù)面影響是新 CPU 的緩存對于遷移過來的任務(wù)來說是冷的(需要將數(shù)據(jù)讀入緩存中)。
記住 CPU 緩存是一個(gè)本地(片上)內(nèi)存,提供了比系統(tǒng)內(nèi)存更快的訪問能力。如果一個(gè)任務(wù)是在某個(gè) CPU 上執(zhí)行的,與這個(gè)任務(wù)有關(guān)的數(shù)據(jù)都會被放到這個(gè) CPU 的本地緩存中,這就稱為熱的。如果對于某個(gè)任務(wù)來說,CPU 的本地緩存中沒有任何數(shù)據(jù),那么這個(gè)緩存就稱為冷的。
不幸的是,保持 CPU 繁忙會出現(xiàn) CPU 緩存對于遷移過來的任務(wù)為冷的情況。
6. 應(yīng)用程序如何利用多Core :
開發(fā)人員可將可并行的代碼寫入線程,而這些線程會被SMP操作系統(tǒng)安排并發(fā)運(yùn)行。
另外,Sam設(shè)想,對于必須順序執(zhí)行的代碼??梢詫⑵浞譃槎鄠€(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)為一個(gè)thread.并在節(jié)點(diǎn)間放置channel.節(jié)點(diǎn)間形如流水線。這樣也可以大大增強(qiáng)CPU利用率。
例如:
游戲可以分為3個(gè)節(jié)點(diǎn)。
1.接受外部信息,聲稱數(shù)據(jù) (1ms)
2.利用數(shù)據(jù),物理運(yùn)算(3ms)
3.將物理運(yùn)算的結(jié)果展示出來。(2ms)
如果線性編程,整個(gè)流程需要6ms.
但如果將每個(gè)節(jié)點(diǎn)作為一個(gè)thread。但thread間又同步執(zhí)行。則整個(gè)流程只需要3ms.
“CentOS下如何查看每個(gè)CPU的使用率”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!