2016-06-24 49 views
0

我試圖讓安裝SD卡性能,以我的板,我使用IOZONE工具來做到這一點,但我得到starnge結果bechmarking:SD卡使用IOZONE工具

命令:

# mount /dev/mmcblk2p2 /mnt/SD 
# cd /mnt/SD 
# iozone -a -s 10M -r 5K -w -e 

結果:

         random random bkwd record stride         
      KB reclen write rewrite read reread read write read rewrite  read fwrite frewrite fread freread 
     10240  5 4283 4136 68681 378738 337652 3871 133905 96074 216912  4122  5013 364024 376181 

結果以KB這意味着速度隨機讀取爲300MB/s的? 我的卡片通常是第4類,寫入速度是4 MB/s,讀取速度與此值並無太大區別?

+0

您的操作系統(linux?)可能會緩存從SD閃存卡讀取的數據;所以300 MB/s可能從RAM內存中讀取 – osgx

回答

0
iozone -a -s 10M -r 5K -w -e 

            random random bkwd record stride         
     KB reclen write rewrite read reread read write read rewrite  read fwrite frewrite fread freread 
    10240  5 4283 4136 68681 378738 337652 3871 133905 96074 216912  4122  5013 364024 376181 

是的,你的結果是在千字節/秒(KB/S;不要使用-s靜音選項和IOZONE會說這Output is in kBytes/sec),是的,那裏爲 「重讀」 速度爲380 MB /秒(重讀後讀取200 MB/s)?但是如果您的測試設置(10 MB)小於您的RAM數量(它),則重新讀取可能不是您的塊設備(SD卡/ HDD/SSD)的速度。

大多數操作系統(以及Linux)都有用於文件系統和塊設備的軟件RAM緩存。當您第一次訪問某個塊(自引導以來)時,它將從設備中讀取並存儲在OS的Page Cache中。該塊的下一個訪問(讀取)將直接從RAM中提供,而不是從設備本身提供(除非在I/O操作中使用了O_DIRECT選項,iozone的-I選項)。

因此,您的測試運行不正確。使用前閱讀iozone的手冊頁:http://linux.die.net/man/1/iozone並嘗試更大的測試集(千兆字節)或使用-I來繞過頁面緩存。

+0

我的RAM是512M,我想在幾秒鐘內通過SD速度的測試,這就是爲什麼我使用10M作爲大小,選項-I不幫助它仍然是相同的結果。 – Mondher123

0

這裏是當我使用-I選項

              random random bkwd record stride         
      KB reclen write rewrite read reread read write read rewrite  read fwrite frewrite fread freread 
     10240 1024 2356 2950 19693 20865 20833 2095 20111  1734 14375  2875  3566 386809 389443 


    write seq :    2,3 Mo/s 
    read seq:     19,2 Mo/s 
    write rand:    2 Mo/s 
    read rand:    20 Mo/s 
    read blk     20 Mo/s 

爲什麼讀取速度還是那麼高的結果?

+0

它太高了嗎? 20 MB/s的速度足以從NAND閃存讀取數據,SD接口每秒傳遞20 MB數據是真實的。從NAND讀取總是比寫入快2-4倍。 SD接口有幾種速度協議和等級:[Secure_Digital#Speeds of wikipedia](https://en.wikipedia.org/wiki/Secure_Digital#Speeds),SD的某些UHS變體可能會通過50和100 MB/s。 – osgx

+0

感謝您提供這些信息 – Mondher123