1、Stream記憶體帶寬測試 Stream是業界主流的記憶體帶寬測試程式,測試行為相對簡單可控。該程式對CPU的計算能力要求很小,對CPU記憶體帶寬壓力很大。隨著處理器核心數量的增大,而記憶體帶寬並沒有隨之成線性增長,因此記憶體帶寬對提升多核心的處理能力就越發重要。Stream具有良好的空間局部性,是對TL ...
1、Stream記憶體帶寬測試
Stream是業界主流的記憶體帶寬測試程式,測試行為相對簡單可控。該程式對CPU的計算能力要求很小,對CPU記憶體帶寬壓力很大。隨著處理器核心數量的增大,而記憶體帶寬並沒有隨之成線性增長,因此記憶體帶寬對提升多核心的處理能力就越發重要。Stream具有良好的空間局部性,是對TLB友好,Cache友好的一款測試程式,其分為Copy、Scale、Add和Triad四個更基本的測試功能。
Copy為最簡單的操作,即從一個記憶體單元中讀取一個數,並複製到另一個記憶體單元,有2次訪存操作。
Scale是乘法操作,從一個記憶體單元中讀取一個數,與常數scale相乘,得到的結果寫入另一個記憶體單元,有2次訪存。
Add是加法操作,從兩個記憶體單元中分別讀取兩個數,將其進行加法操作,得到的結果寫入另一個記憶體單元中,有2次讀和1次寫共3次訪存。
Triad是前面三種的結合,先從記憶體中讀取一個數,與scale相乘得到一個乘積,然後從另一個記憶體單元中讀取一個數與之前的乘積相加,得到的結果再寫入記憶體。所以,有2次讀和1次寫共3次訪存操作。
從上述的結果我們可以看出,測試的記憶體帶寬Add>Triad>Copy>Scale。這是因為訪存次數越多,內隱藏的訪存延遲越大,得到的帶寬越大。同理,運算的操作越複雜,操作時間就越長,程式運行時間就越長,得到的訪存帶寬就相應減少。這就是為什麼3次訪存的操作得到的帶寬比2次訪存操作得到的要大,而相同訪存次數的操作,加法要比乘法得到的結果要好。
2、MLC記憶體延遲測試
影響應用程式性能的一個關鍵因素是應用程式從處理器緩存和從記憶體子系統獲取數據所消耗的時間
,(Intel Memory Latency Checker(Intel MLC) 是一個用於測試延遲和帶寬隨著系統負載增加而變化的工具; 支持 Linux 、Windows;實現方法是: MLC 創建壓測主機邏輯處理器數量減 1 個線程,然後使用這些線程生成壓測流量,餘下的 1 個 vCPU 用於運行一個測量延遲的線程。
類型 |
預期結果 |
測試步驟 |
stream記憶體帶寬測試 |
Best Rate數值越高越好 |
1、安裝gcc下載http://www.cs.virginia.edu/stream/FTP/Code/stream.c |
MLC記憶體延遲測試 |
ns的值越低越好 |
1、下載wget https://downloadmirror.intel.com/736634/mlc_v3.9a.tgz 並解壓tar -zxvf mlc_v3.9.tgz |
鏈接:CPU/記憶體/磁碟/網路/redis/MQ測試工具合集
作者:S-Gavin 出處:https://www.cnblogs.com/zwh-Seeking/---------------------------------------
您的支持是我前進的動力!!!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點球球“推薦”哦,博主在此感謝!
萬水千山總是情,打賞一分行不行。若要你的心情好,請便右側賞博主。哈哈哈(っ•̀ω•́)っ✎⁾⁾!