1、Stream內(nèi)存帶寬測(cè)試
??Stream是業(yè)界主流的內(nèi)存帶寬測(cè)試程序,測(cè)試行為相對(duì)簡(jiǎn)單可控。該程序?qū)PU的計(jì)算能力要求很小,對(duì)CPU內(nèi)存帶寬壓力很大。隨著處理器核心數(shù)量的增大,而內(nèi)存帶寬并沒有隨之成線性增長(zhǎng),因此內(nèi)存帶寬對(duì)提升多核心的處理能力就越發(fā)重要。Stream具有良好的空間局部性,是對(duì)TLB友好,Cache友好的一款測(cè)試程序,其分為Copy、Scale、Add和Triad四個(gè)更基本的測(cè)試功能。
Copy為最簡(jiǎn)單的操作,即從一個(gè)內(nèi)存單元中讀取一個(gè)數(shù),并復(fù)制到另一個(gè)內(nèi)存單元,有2次訪存操作。
Scale是乘法操作,從一個(gè)內(nèi)存單元中讀取一個(gè)數(shù),與常數(shù)scale相乘,得到的結(jié)果寫入另一個(gè)內(nèi)存單元,有2次訪存。
Add是加法操作,從兩個(gè)內(nèi)存單元中分別讀取兩個(gè)數(shù),將其進(jìn)行加法操作,得到的結(jié)果寫入另一個(gè)內(nèi)存單元中,有2次讀和1次寫共3次訪存。
Triad是前面三種的結(jié)合,先從內(nèi)存中讀取一個(gè)數(shù),與scale相乘得到一個(gè)乘積,然后從另一個(gè)內(nèi)存單元中讀取一個(gè)數(shù)與之前的乘積相加,得到的結(jié)果再寫入內(nèi)存。所以,有2次讀和1次寫共3次訪存操作。
??從上述的結(jié)果我們可以看出,測(cè)試的內(nèi)存帶寬Add>Triad>Copy>Scale。這是因?yàn)樵L存次數(shù)越多,內(nèi)隱藏的訪存延遲越大,得到的帶寬越大。同理,運(yùn)算的操作越復(fù)雜,操作時(shí)間就越長(zhǎng),程序運(yùn)行時(shí)間就越長(zhǎng),得到的訪存帶寬就相應(yīng)減少。這就是為什么3次訪存的操作得到的帶寬比2次訪存操作得到的要大,而相同訪存次數(shù)的操作,加法要比乘法得到的結(jié)果要好。
2、MLC內(nèi)存延遲測(cè)試
??影響應(yīng)用程序性能的一個(gè)關(guān)鍵因素是應(yīng)用程序從處理器緩存和從內(nèi)存子系統(tǒng)獲取數(shù)據(jù)所消耗的時(shí)間
,(Intel Memory Latency Checker(Intel MLC) 是一個(gè)用于測(cè)試延遲和帶寬隨著系統(tǒng)負(fù)載增加而變化的工具; 支持 Linux 、Windows;實(shí)現(xiàn)方法是: MLC 創(chuàng)建壓測(cè)主機(jī)邏輯處理器數(shù)量減 1 個(gè)線程,然后使用這些線程生成壓測(cè)流量,余下的 1 個(gè) vCPU 用于運(yùn)行一個(gè)測(cè)量延遲的線程。
類型 |
預(yù)期結(jié)果 |
測(cè)試步驟 |
stream內(nèi)存帶寬測(cè)試 |
Best Rate數(shù)值越高越好 |
1、安裝gcc下載http://www.cs.virginia.edu/stream/FTP/Code/stream.c |
MLC內(nèi)存延遲測(cè)試 |
ns的值越低越好 |
1、下載wget https://downloadmirror.intel.com/736634/mlc_v3.9a.tgz 并解壓tar -zxvf mlc_v3.9.tgz |
? 鏈接:CPU/內(nèi)存/磁盤/網(wǎng)絡(luò)/redis/MQ測(cè)試工具合集文章來源地址http://www.zghlxwxcb.cn/news/detail-710259.html
到了這里,關(guān)于Linux-Stream內(nèi)存帶寬及MLC內(nèi)存延遲性能測(cè)試方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!