亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

你以為你的多核CPU都是真的核嗎?多核“假象”

2023-12-22 02:22:23
20
0

提到CPU核數,相信絕大部分的同學想到的都是top命令,直接到自己的服務器上看一下是多少個核。看到的核越多,貌似笑的越開心。比如說說我的CPU,用top命令展開以后,看到了有24核。那么事實真是你想象的這么美好嗎?

# top
top - 17:04:51 up 882 days,  1:16,  1 user,  load average: 0.05, 0.05, 0.00  
Tasks: 596 total,   1 running, 595 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  
Cpu4  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st 
......
Cpu23 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st  

那么是否就說明我的機器安裝的CPU真的有24核?其實不是的,我們通過top命令看到的CPU核也叫做邏輯核。 說到這里我們先來普及一下基本概念:

  • 物理CPU:主板上真正安裝的CPU的個數,通過physical id可以查查看
  • 物理核:一個CPU會集成多個物理核心,通過core id可以查看到物理核的序號
  • 邏輯核: intel運用了超線程技術,一個物理核可以被虛擬出來多個邏輯核,processor是邏輯核序號

好了,我們了解完cpu的基本概念后,來找一臺機器真正看一下。在linux系統下,通過 cat /proc/cpuinfo可以看到CPU更為詳細的信息,在操作系統的視角看來是有24個邏輯核,但是在物理上很有可能多個邏輯核對應的是同一個物理核。如下所示例子:

實際查看你的CPU

  • 查看物理CPU
#cat /proc/cpuinfo | grep "physical id" | sort | uniq  
physical id     : 0  
physical id     : 1  

可以看出,該實機有兩個物理CPU。

  • 查看物理核
#cat /proc/cpuinfo| grep "cpu cores"| uniq  
cpu cores       : 6  

cpu cores表示每個cpu有6個物理核心,因為有2個物理CPU,所以該機器總共只有12個物理核。而不是top命令里看到的24個,整整少了一半。  Intel是通過超線程技術把一個物理核虛擬出來了多個,故而操作系統層面看到的比實際的物理核要多。我們尋找一下證據

  • 查看邏輯CPU
#cat /proc/cpuinfo  | grep -E "core id|process|physical id"  
processor       : 0  
physical id     : 0  
core id         : 0  
......  
processor       : 12  
physical id     : 0  
core id         : 0  
......  
processor       : 23  
physical id     : 1  
core id         : 10  

processor就是邏輯核的序號,可以看出該機器總共有24個邏輯核。大家注意看processor 0和processor 12的physical id、core id都是一樣的,也就說他們他們也處在同一個物理核上。但是他們的processor編號卻不一樣,一個是0,一個是12。這就是說,這兩個核實際上是一個核,只是通過虛擬技術虛擬出來的而已。

超線程作用

超線程里的2個邏輯核實際上是在一個物理核上運行的,模擬雙核心運作,共享該物理核的L1和L2緩存。物理計算能力并沒有增加,超線程技術只有在多任務的時候才能提升機器核整體的吞吐量。而且據Intel官方介紹,相比實核,平均性能提升只有20-30%左右。也就是說,在我剛才的機器上看到的24核的處理能力,整體上只比不開超線程的12核性能高30%。讓我們再用開發者使用的進程來看,由于你的進程被其它進程分享了L1、L2,這就導致cache miss變多,性能會比不開超線程要差。

所以說,操作系統看到的24核只是一個“假象”

0條評論
0 / 1000
5****m
2文章數
0粉絲數
5****m
2 文章 | 0 粉絲
5****m
2文章數
0粉絲數
5****m
2 文章 | 0 粉絲
原創

你以為你的多核CPU都是真的核嗎?多核“假象”

2023-12-22 02:22:23
20
0

提到CPU核數,相信絕大部分的同學想到的都是top命令,直接到自己的服務器上看一下是多少個核。看到的核越多,貌似笑的越開心。比如說說我的CPU,用top命令展開以后,看到了有24核。那么事實真是你想象的這么美好嗎?

# top
top - 17:04:51 up 882 days,  1:16,  1 user,  load average: 0.05, 0.05, 0.00  
Tasks: 596 total,   1 running, 595 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  
Cpu4  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st 
......
Cpu23 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st  

那么是否就說明我的機器安裝的CPU真的有24核?其實不是的,我們通過top命令看到的CPU核也叫做邏輯核。 說到這里我們先來普及一下基本概念:

  • 物理CPU:主板上真正安裝的CPU的個數,通過physical id可以查查看
  • 物理核:一個CPU會集成多個物理核心,通過core id可以查看到物理核的序號
  • 邏輯核: intel運用了超線程技術,一個物理核可以被虛擬出來多個邏輯核,processor是邏輯核序號

好了,我們了解完cpu的基本概念后,來找一臺機器真正看一下。在linux系統下,通過 cat /proc/cpuinfo可以看到CPU更為詳細的信息,在操作系統的視角看來是有24個邏輯核,但是在物理上很有可能多個邏輯核對應的是同一個物理核。如下所示例子:

實際查看你的CPU

  • 查看物理CPU
#cat /proc/cpuinfo | grep "physical id" | sort | uniq  
physical id     : 0  
physical id     : 1  

可以看出,該實機有兩個物理CPU。

  • 查看物理核
#cat /proc/cpuinfo| grep "cpu cores"| uniq  
cpu cores       : 6  

cpu cores表示每個cpu有6個物理核心,因為有2個物理CPU,所以該機器總共只有12個物理核。而不是top命令里看到的24個,整整少了一半。  Intel是通過超線程技術把一個物理核虛擬出來了多個,故而操作系統層面看到的比實際的物理核要多。我們尋找一下證據

  • 查看邏輯CPU
#cat /proc/cpuinfo  | grep -E "core id|process|physical id"  
processor       : 0  
physical id     : 0  
core id         : 0  
......  
processor       : 12  
physical id     : 0  
core id         : 0  
......  
processor       : 23  
physical id     : 1  
core id         : 10  

processor就是邏輯核的序號,可以看出該機器總共有24個邏輯核。大家注意看processor 0和processor 12的physical id、core id都是一樣的,也就說他們他們也處在同一個物理核上。但是他們的processor編號卻不一樣,一個是0,一個是12。這就是說,這兩個核實際上是一個核,只是通過虛擬技術虛擬出來的而已。

超線程作用

超線程里的2個邏輯核實際上是在一個物理核上運行的,模擬雙核心運作,共享該物理核的L1和L2緩存。物理計算能力并沒有增加,超線程技術只有在多任務的時候才能提升機器核整體的吞吐量。而且據Intel官方介紹,相比實核,平均性能提升只有20-30%左右。也就是說,在我剛才的機器上看到的24核的處理能力,整體上只比不開超線程的12核性能高30%。讓我們再用開發者使用的進程來看,由于你的進程被其它進程分享了L1、L2,這就導致cache miss變多,性能會比不開超線程要差。

所以說,操作系統看到的24核只是一個“假象”

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0