rk平台emmc压力测试方法


rockchip平台emmc压力测试可以使用如下脚本进行测试,具体步骤如下:

  1. 在文章最后的代码复制到文件中,命名为 emmc_stress_test.sh,选择编码为unix utf-8格式,拷贝到机器的/sdcard 目录。
  2. 在sdcard 目录新建三个文件夹:src_test_data ,md5_data ,des_test_data
  3. 将一个约500M左右的文件拷贝到 src_test_data 目录。
  4. 在cmd界面启动adb,在adb界面输入: busybox nohup sh emmc_stress_test.sh & //启动后台测试
  5. 输入exit 退出adb,然后再输入exit退出cmd界面。
  6. 测试过程不关闭窗口,会打印测试次数,也可以 cat /sdcard/test_log.txt 查看测试结果。

注:此方法也可以用在其他平台,不过需要根据平台修改对应的脚本。

下述为脚本代码:

  1. #!/bin/bash  
  2. #/******************************************************************/  
  3. #/*  Copyright (C)  ROCK-CHIPS FUZHOU . All Rights Reserved.       */  
  4. #/*******************************************************************  
  5. #File    :   emmc_stress_test.sh  
  6. #Desc    :   EMMC write and read stress test tools   
  7. #Author  :   ZhaoYiFeng  
  8. #Date    :   2015-03-11  
  9. #Notes   :      
  10. #Revision 1.00  2015/03/11 ZhaoYiFeng   
  11. #Init file.   
  12. #********************************************************************/  
  13. # usage:  
  14. # sh emmc_stress_test.sh dirnum testcount  
  15. # example  :src file size 500MB, totle test data 500GB   
  16. #         sh emmc_stress_test.sh 5 200  
  17. #  
  18. #soure file info: 100files,totle size 500MB  
  19. test_dir=$(pwd)  
  20. source_dir=$test_dir/src_test_data  
  21. dest_dir=$test_dir/des_test_data  
  22. md5_dir=$test_dir/md5_data  
  23. mount -o remount,rw /  
  24. mount -o remount,rw /system  
  25. /system/bin/busybox ln -s /system/bin/busybox /system/bin/find  
  26. /system/bin/busybox ln -s /system/bin/busybox /system/bin/md5sum  
  27. /system/bin/busybox ln -s /system/bin/busybox /system/bin/xargs  
  28. /system/bin/busybox ln -s /system/bin/busybox /system/bin/sort  
  29. /system/bin/busybox ln -s /system/bin/busybox /system/bin/diff  
  30. test_max_count=200  
  31. test_max_dir=5  
  32. #if [ $1 != 0 ] ;then  
  33. #    test_max_dir=$1  
  34. #fi  
  35. #if [ $2 != 0 ] ;then  
  36. #    test_max_count=$2  
  37. #fi  
  38. echo "Test Max dir Num = ${test_max_dir}"  
  39. echo "Test Max count = ${test_max_count}"  
  40. count=0  
  41. dir_loop=0  
  42. rm -rf  $test_dir/test_log.txt  
  43. mkdir $dest_dir  
  44. mkdir $md5_dir  
  45. mkdir $source_dir  
  46. cd $source_dir  
  47. #find ./ -type f -print0 | xargs -0 md5sum | sort > $md5_dir/source.md5  
  48. md5sum ./* > $md5_dir/source.md5  
  49. cd /  
  50. while [ $count -lt $test_max_count ]; do  
  51.     echo $count  
  52.     echo $count >> $test_dir/test_log.txt  
  53.     dir_loop=0  
  54.     while [ $dir_loop -lt $test_max_dir ]; do  
  55.         echo "$count copy $source_dir to $dest_dir/${dir_loop}"  
  56.         echo "$count copy $source_dir to $dest_dir/${dir_loop}" >> $test_dir/test_log.txt  
  57.         rm -rf  $dest_dir/$dir_loop  
  58.         if [ $? == 0 ]; then  
  59.             echo "$count clean $dest_dir/${dir_loop} success"  
  60.             echo "$count clean $dest_dir/${dir_loop} success" >> $test_dir/test_log.txt  
  61.         else  
  62.             echo "$count clean $dest_dir/${dir_loop} error"  
  63.             echo "$count clean $dest_dir/${dir_loop} error" >> $test_dir/test_log.txt  
  64.             exit 0  
  65.         fi  
  66.         #sync  
  67.         #sleep 1  
  68.         #start copy data  
  69.         echo "$count $dir_loop start copy data"  
  70.         echo "$count $dir_loop start copy data" >> $dir/test_log.txt  
  71.         cp  -rf   $source_dir $dest_dir/$dir_loop  
  72.         if [ $? == 0 ]; then  
  73.             echo "$count cp  $source_dir to $dest_dir/${dir_loop} success"  
  74.             echo "$count cp  $source_dir to $dest_dir/${dir_loop} success" >> $test_dir/test_log.txt  
  75.         else  
  76.             echo "$count cp  $source_dir to $dest_dir/${dir_loop} error"  
  77.             echo "$count cp  $source_dir to $dest_dir/${dir_loop} error" >> $test_dir/test_log.txt  
  78.         fi  
  79.         #sync  
  80.         #sleep 1  
  81.         dir_loop=$(($dir_loop+1))  
  82.     done  
  83.     dir_loop=0  
  84.     sync && echo 3 > /proc/sys/vm/drop_caches  
  85.     sleep 5  
  86.     sync  
  87.     echo 3 > /proc/sys/vm/drop_caches  
  88.     sleep 5  
  89.     while [ $dir_loop -lt $test_max_dir ]; do  
  90.         #calc md5  
  91.         echo "$count calc $dest_dir/${dir_loop} md5 start"  
  92.         echo "$count calc $dest_dir/${dir_loop} md5 start" >> $test_dir/test_log.txt  
  93.         cd $dest_dir/${dir_loop}  
  94.         #find ./ -type f -print0 | xargs -0 md5sum | sort > $md5_dir/dest${dir_loop}.md5  
  95.         md5sum ./* > $md5_dir/dest${dir_loop}.md5  
  96.         cd /  
  97.         #cmp with src md5  
  98.         busybox diff $md5_dir/source.md5 $md5_dir/dest${dir_loop}.md5  
  99.         if [ $? == 0 ]; then  
  100.             echo "$count check source to $dest_dir/${dir_loop} success"  
  101.             echo "$count check source to $dest_dir/${dir_loop} success" >> $test_dir/test_log.txt  
  102.             rm  $md5_dir/dest${dir_loop}.md5  
  103.         else  
  104.             echo "$count check source to $dest_dir/${dir_loop} error"  
  105.             echo "$count check source to $dest_dir/${dir_loop} error" >> $test_dir/test_log.txt  
  106.             exit 0  
  107.         fi  
  108.         dir_loop=$(($dir_loop+1))  
  109.     done  
  110.     count=$(($count+1))  
  111.         #rm -rf  $test_dir/$dest_dir/*  
  112.     echo -----------------------------------------  
  113.     echo -----------------------------------------  >> $test_dir/test_log.txt  
  114. done  
  115.     echo "-------copy and check success------------"  
  116.     echo "-------copy and check success------------"  >> $test_dir/test_log.txt  

版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/rockchip-emmc-stress-test.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注