2016年11月14日 星期一

MicroSD Card write endurance test

前文
MicroSD/eMMC Endurance?
讓我想試著測試MicroSD卡...

如同網路上對SSD作的測試
我想要對一張MicroSD卡持續讀寫,驗證它甚時候出現BadBlock
這個測試放在我的Server上面跑,因為一般PC沒有SD Interface
所以採用USB讀卡機作為SD Interface

因為MicroSD不像SSD有SMART資訊可以判讀總寫入量(Total Bytes Written)、錯誤發生數量(
Reallocated Sectors Count)
所以採用Badblocks直接對磁碟進行讀寫操作,判斷錯誤發生的數量
讀取/proc/diskstats的sectors written判斷總寫入量

最後,收集數據,自動上傳到Blogger,最後再來想怎呈現
測試的Log會自動發布在Sandisk 8G Write Test

目前測試的MicroSD卡是舊的,等整個測試驗證ok再拆新的卡來跑XD
測試shell script如下,如果有修改再更新

#!/bin/bash

# Loop badblock to write disk
# check the disk endurance, and update it to blogger

DISK='sdc '

while true
do
sudo badblocks -ws -o usbstick.log /dev/sdc
DATE=`date -R`
DISK_TOTAL_MBYTES_WRITEN=`grep $DISK /proc/diskstats|awk '{print $3"\t"$10 / 2 / 1024}' `
BADBLOCKS_LOG=`cat usbstick.log`
echo $DATE,$DISK_TOTAL_MBYTES_WRITEN,$BADBLOCKS_LOG >> Sandisk_8G_Write_test.txt
b.py post Sandisk_8G_Write_test.txt
done

8G的卡, MLC如果3000次,可以寫入24TB的資料量
假設2MBytes/Second
要花138天...

沒有留言:

張貼留言

Fix msmtp does not work in old ubuntu/debian version

主要是舊版msmtp沒有處理好email header 現在的smtp伺服器會檢查mail header 寄件人跟帳號不一致不給寄 收件人不是合法mail address自然不能寄 #!/bin/bash # Workaround until mtmsp >= 1.8....