Linux之CPU物理核与逻辑核
前言:
以前經常在工作中聽到所謂的服務器幾核、幾核,物理核數、邏輯核數,傻傻分不清楚。下面就了解一下相關概念及關系。
一、所謂的CPU
所謂的CPU,它的全稱是Central Processing Unit / Processor,即中央處理器。一般公司在購買服務器時都會評估一臺服務器中要幾顆CPU,每顆CPU是幾核的(CPU顆數越多,核數越多,一般處理能力越強)。個人購買的筆記本電腦、家用臺式機,一般都是單顆CPU。
注:平常中叫的單路、雙路、四路指的就是服務器中有幾個物理CPU。
二、所謂的物理核數(物理CPU核數)
根據每種品牌的型號不同,每顆CPU的核數也是不一樣的。其中核數指的是每顆CPU中的數據處理單元數量。
三、所謂的邏輯核數(邏輯CPU核數)
一般一個核心對應了一個線程,而intel開發出了超線程技術,1個核心能夠做到2個線程進行計算。邏輯核數與線程是一一對應的。一般情況下,服務器默認開啟超線程,如果CPU支持多線程則會使用。如果不想使用到CPU的超線程功能,需要重啟服務器并在BIOS中手動關閉。
四、總結
一個服務器主板可以插多個CPU稱為多路,一個CPU可以有多個物理核。如果開啟了超線程,一個物理核可以分成n個邏輯核(一般是2),n為超線程的數量。
電腦總核數 = 物理CPU個數 * 每顆物理CPU的核數
電腦總邏輯CPU數 = 物理CPU個數 * 每顆物理CPU的核數 X 超線程數
注:我們常說的幾核一般不包括邏輯核數。
五、查看服務器是否開啟超線程
cat /proc/cpuinfo | grep “siblings” | uniq --查看單顆CPU的邏輯核數
cat /proc/cpuinfo| grep “cpu cores”| uniq --查看單顆CPU的物理核數
如果siblings的數量時cpu cores的兩倍,則說明支持超線程,并且開啟了超線程。如果數量一樣,則說明CPU不支持超線程,或者服務器超線程沒打開。(CPU支不支持可根據型號上網查看)
六、查看服務器的CPU品牌型號
cat /proc/cpuinfo | grep “model name” | uniq
七、查看服務器的CPU個數
cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l
八、查看服務器的CPU物理核數
cat /proc/cpuinfo| grep “cpu cores”| uniq
注:查的是每顆CPU的物理核數
九、查看服務器的CPU邏輯核數
cat /proc/cpuinfo | grep “siblings” | uniq --查看單顆CPU的邏輯核數
cat /proc/cpuinfo| grep “processor”| wc -l --查看所有CPU的邏輯核數
十、cpuinfo中的CPU相關名詞解釋
cat /proc/cpuinfo | more
processor?????? : 0???? -----邏輯CPU的唯一標識符
vendor_id?????? : GenuineIntel??—標識英特爾處理器
cpu family????? : 6
model?????????? : 62
stepping??????? : 4
cpu MHz???????? : 2089.986
cache size????? : 16390 KB
physical id???? : 0??—物理cpu的唯一標識
siblings??????? : 12?—代表邏輯cpu個數
core id???????? : 0??—每個物理內核的唯一標識
cpu cores?????? : 6??—物理cpu中的核心數
十一、其他知識點
1、查看linux或者unix服務器的負載時
uptime
16:23:09 up 32 days, 16:23,? 2 users,? load average: 1.30, 1.86, 1.95
需要根據邏輯cpu個數來衡量。
2、使用top時,按下1后,可以查看到邏輯CPU相關信息。
3、超線程技術(HT)
超線程技術就是讓一個核模擬出兩個核的技術。
超線程(HT)并不是我們一般說的多線程。一般說的多線程(multi-threading)是指程序方面的,簡單的說就是’軟’的,代碼級別的。而超線程一般指的是硬件架構方面的,是’硬’的:通過調整AS而模擬出來的’邏輯核’。
也就是說,超線程是一個物理核里面,有兩個AS,一個PU。兩個AS共享一個PU。
1)Processing Unit(運算處理單元),簡稱PU
2)Architectual State(架構狀態單元),簡稱AS
PU一般就是執行運算,比如算數運算加減乘除。AS執行一些邏輯和調度方面的操作,比如控制內存訪問等。
4、top查看進程的%CPU值,為什么會CPU占用率超過100%?
因為該進程占用超過一個核,占滿2個核就是200%了。所以需要從多核角度考慮。
5、性能方面:1個雙核CPU > 1個單核CPU超線程 > 2個單核CPU非超線程
6、線程和核的關系
線程需要核執行,一個核在同一時間只能執行一條線程,這里的核指邏輯核。
7、進程和線程
進程是操作系統層面的,線程是CPU層面的,CPU真正執行的是線程而不是進程。
進程是是靜態的概念,是一些資源的集合,比如進程有自己的內存;而線程是動態的概念。
進程可以有多個線程,這些線程共享同一份進程的資源。
多核的情況下,可以做到多個進程同時執行;當然也就可以做到多個線程同時執行。但是單核的CPU無法做到“同時”。
總結
以上是生活随笔為你收集整理的Linux之CPU物理核与逻辑核的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dell Venue 8 Pro启动盘U
- 下一篇: Django之orm补充