偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

內(nèi)存性能的正確解讀

存儲 存儲軟件
一臺服務(wù)器,不管是物理機(jī)還是虛擬機(jī),必不可少的就是內(nèi)存,內(nèi)存的性能又是如何來衡量呢。

一臺服務(wù)器,不管是物理機(jī)還是虛擬機(jī),必不可少的就是內(nèi)存,內(nèi)存的性能又是如何來衡量呢。

[[252453]]

1. 內(nèi)存與緩存

現(xiàn)在比較新的CPU一般都有三級緩存,L1 Cache(32KB-256KB),L2 Cache(128KB-2MB),L3 Cache(1M-32M)。緩存逐漸變大,CPU在取數(shù)據(jù)的時候,優(yōu)先從緩存去取數(shù)據(jù),取不到才去內(nèi)存取數(shù)據(jù)。

2. 內(nèi)存與時延

顯然,越靠近CPU,取數(shù)據(jù)的速度越塊,通過LMBench進(jìn)行了讀數(shù)延遲的測試。

從上圖可以看出:

Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz 這款CPU的L1D Cache,L1I Cache為32KB,而L2 Cache為1M,L3為32M;

在對應(yīng)的Cache中,時延是穩(wěn)定的;

不同緩存的時延呈現(xiàn)指數(shù)級增長;

所以我們在寫業(yè)務(wù)代碼的時候,如果想要更快地提高效率,那么使得計(jì)算更加貼近CPU則可以獲取更好的性能。但是從上圖也可以看出,內(nèi)存的時延都是納秒為單位,而實(shí)際業(yè)務(wù)中都是毫秒為單位,優(yōu)化的重點(diǎn)應(yīng)該是那些以毫秒為單位的運(yùn)算,而內(nèi)存時延優(yōu)化這塊則是長尾部分。

3. 內(nèi)存帶寬

內(nèi)存時延與緩存其實(shí)可謂是緊密相關(guān),不理解透徹了,則可能測的是緩存時延。同樣測試內(nèi)存帶寬,如果不是正確的測試,則測的是緩存帶寬了。

為了了解內(nèi)存帶寬,有必要去了解下內(nèi)存與CPU的架構(gòu),早期的CPU與內(nèi)存的架構(gòu)還需要經(jīng)過北橋總線,現(xiàn)在CPU與內(nèi)存直接已經(jīng)不需要北橋,直接通過CPU的內(nèi)存控制器(IMC)進(jìn)行內(nèi)存讀取操作:

那對應(yīng)的內(nèi)存帶寬是怎樣的呢?測試內(nèi)存帶寬有很多很多工具,linux下一般通過stream進(jìn)行測試。簡單介紹下stream的算法:

stream算法的原理從上圖可以看出非常簡單:某個內(nèi)存塊之間的數(shù)據(jù)讀取出來,經(jīng)過簡單的運(yùn)算放入另一個內(nèi)存塊。那所謂的內(nèi)存帶寬:內(nèi)存帶寬=搬運(yùn)的內(nèi)存大小/耗時。通過整機(jī)合理的測試,可以測出來內(nèi)存控制器的帶寬。下圖是某云產(chǎn)品的內(nèi)存帶寬數(shù)據(jù):

  1. Function Best Rate MB/s Avg time Min time Max time 
  2. Copy: 128728.5 0.134157 0.133458 0.136076 
  3. Scale: 128656.4 0.134349 0.133533 0.137638 
  4. Add: 144763.0 0.178851 0.178014 0.181158 
  5. Triad: 144779.8 0.178717 0.177993 0.180214 

內(nèi)存帶寬的重要性自然不言而喻,這意味著操作內(nèi)存的***數(shù)據(jù)吞吐量。但是正確合理的測試非常重要,有幾個注意事項(xiàng)需要關(guān)注:

內(nèi)存數(shù)組大小的設(shè)置,必須要遠(yuǎn)大于L3 Cache的大小,否則就是測試緩存的吞吐性能;

CPU數(shù)目很有關(guān)系,一般來說,一兩個核的計(jì)算能力,是遠(yuǎn)遠(yuǎn)到不了內(nèi)存帶寬的,整機(jī)的CPU全部運(yùn)行起來,才可以有效地測試內(nèi)存帶寬。當(dāng)然跑單核的stream測試也有意義,可以測試內(nèi)存的延時。

4. 其他

內(nèi)存與NUMA的關(guān)系:開啟NUMA,可以有效地提供內(nèi)存的吞吐性能,降低內(nèi)存時延。

stream算法的編譯方法選擇:通過icc編譯,可以有效地提供內(nèi)存帶寬性能分。原因是Intel優(yōu)化了CPU的指令,通過指令向量化和指令Prefetch操作,加速了數(shù)據(jù)的讀寫操作以及指令操作。當(dāng)然其他C代碼都可以通過icc編譯的方法,提供指令的效率。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2009-12-07 18:57:17

PHP讀取Cookie

2009-12-31 10:58:31

silverlight

2013-06-04 14:21:20

Vector內(nèi)存釋放

2009-12-08 17:06:40

PHP應(yīng)用odbc

2022-08-26 07:33:49

內(nèi)存JVMEntry

2010-03-05 10:57:53

Python插件PyD

2009-12-09 14:25:21

PHP獲取時間錯誤

2010-03-02 16:05:48

WCF端點(diǎn)配置

2010-02-26 17:44:51

WCF安全參數(shù)

2010-07-23 10:36:43

SQL Server內(nèi)

2009-12-08 14:11:03

PHP時區(qū)修改

2010-03-01 14:08:53

WCF編碼器

2010-07-07 13:39:33

SQL Server監(jiān)

2009-06-26 08:21:57

微軟Windows 7操作系統(tǒng)

2010-09-08 11:26:02

2018-06-13 10:27:04

服務(wù)器性能優(yōu)化

2019-01-02 10:49:54

Tomcat內(nèi)存HotSpot VM

2015-05-25 10:16:33

云集群高性能計(jì)算OpenStack

2010-07-29 10:30:41

DB2隔離級

2010-07-23 09:34:48

Python
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號