rockchip平台emmc压力测试可以使用如下脚本进行测试,具体步骤如下:
- 在文章最后的代码复制到文件中,命名为 emmc_stress_test.sh,选择编码为unix utf-8格式,拷贝到机器的/sdcard 目录。
- 在sdcard 目录新建三个文件夹:src_test_data ,md5_data ,des_test_data
- 将一个约500M左右的文件拷贝到 src_test_data 目录。
- 在cmd界面启动adb,在adb界面输入: busybox nohup sh emmc_stress_test.sh & //启动后台测试
- 输入exit 退出adb,然后再输入exit退出cmd界面。
- 测试过程不关闭窗口,会打印测试次数,也可以 cat /sdcard/test_log.txt 查看测试结果。
注:此方法也可以用在其他平台,不过需要根据平台修改对应的脚本。
下述为脚本代码:
- #!/bin/bash
- #/******************************************************************/
- #/* Copyright (C) ROCK-CHIPS FUZHOU . All Rights Reserved. */
- #/*******************************************************************
- #File : emmc_stress_test.sh
- #Desc : EMMC write and read stress test tools
- #Author : ZhaoYiFeng
- #Date : 2015-03-11
- #Notes :
- #Revision 1.00 2015/03/11 ZhaoYiFeng
- #Init file.
- #********************************************************************/
- # usage:
- # sh emmc_stress_test.sh dirnum testcount
- # example :src file size 500MB, totle test data 500GB
- # sh emmc_stress_test.sh 5 200
- #
- #soure file info: 100files,totle size 500MB
- test_dir=$(pwd)
- source_dir=$test_dir/src_test_data
- dest_dir=$test_dir/des_test_data
- md5_dir=$test_dir/md5_data
- mount -o remount,rw /
- mount -o remount,rw /system
- /system/bin/busybox ln -s /system/bin/busybox /system/bin/find
- /system/bin/busybox ln -s /system/bin/busybox /system/bin/md5sum
- /system/bin/busybox ln -s /system/bin/busybox /system/bin/xargs
- /system/bin/busybox ln -s /system/bin/busybox /system/bin/sort
- /system/bin/busybox ln -s /system/bin/busybox /system/bin/diff
- test_max_count=200
- test_max_dir=5
- #if [ $1 != 0 ] ;then
- # test_max_dir=$1
- #fi
- #if [ $2 != 0 ] ;then
- # test_max_count=$2
- #fi
- echo "Test Max dir Num = ${test_max_dir}"
- echo "Test Max count = ${test_max_count}"
- count=0
- dir_loop=0
- rm -rf $test_dir/test_log.txt
- mkdir $dest_dir
- mkdir $md5_dir
- mkdir $source_dir
- cd $source_dir
- #find ./ -type f -print0 | xargs -0 md5sum | sort > $md5_dir/source.md5
- md5sum ./* > $md5_dir/source.md5
- cd /
- while [ $count -lt $test_max_count ]; do
- echo $count
- echo $count >> $test_dir/test_log.txt
- dir_loop=0
- while [ $dir_loop -lt $test_max_dir ]; do
- echo "$count copy $source_dir to $dest_dir/${dir_loop}"
- echo "$count copy $source_dir to $dest_dir/${dir_loop}" >> $test_dir/test_log.txt
- rm -rf $dest_dir/$dir_loop
- if [ $? == 0 ]; then
- echo "$count clean $dest_dir/${dir_loop} success"
- echo "$count clean $dest_dir/${dir_loop} success" >> $test_dir/test_log.txt
- else
- echo "$count clean $dest_dir/${dir_loop} error"
- echo "$count clean $dest_dir/${dir_loop} error" >> $test_dir/test_log.txt
- exit 0
- fi
- #sync
- #sleep 1
- #start copy data
- echo "$count $dir_loop start copy data"
- echo "$count $dir_loop start copy data" >> $dir/test_log.txt
- cp -rf $source_dir $dest_dir/$dir_loop
- if [ $? == 0 ]; then
- echo "$count cp $source_dir to $dest_dir/${dir_loop} success"
- echo "$count cp $source_dir to $dest_dir/${dir_loop} success" >> $test_dir/test_log.txt
- else
- echo "$count cp $source_dir to $dest_dir/${dir_loop} error"
- echo "$count cp $source_dir to $dest_dir/${dir_loop} error" >> $test_dir/test_log.txt
- fi
- #sync
- #sleep 1
- dir_loop=$(($dir_loop+1))
- done
- dir_loop=0
- sync && echo 3 > /proc/sys/vm/drop_caches
- sleep 5
- sync
- echo 3 > /proc/sys/vm/drop_caches
- sleep 5
- while [ $dir_loop -lt $test_max_dir ]; do
- #calc md5
- echo "$count calc $dest_dir/${dir_loop} md5 start"
- echo "$count calc $dest_dir/${dir_loop} md5 start" >> $test_dir/test_log.txt
- cd $dest_dir/${dir_loop}
- #find ./ -type f -print0 | xargs -0 md5sum | sort > $md5_dir/dest${dir_loop}.md5
- md5sum ./* > $md5_dir/dest${dir_loop}.md5
- cd /
- #cmp with src md5
- busybox diff $md5_dir/source.md5 $md5_dir/dest${dir_loop}.md5
- if [ $? == 0 ]; then
- echo "$count check source to $dest_dir/${dir_loop} success"
- echo "$count check source to $dest_dir/${dir_loop} success" >> $test_dir/test_log.txt
- rm $md5_dir/dest${dir_loop}.md5
- else
- echo "$count check source to $dest_dir/${dir_loop} error"
- echo "$count check source to $dest_dir/${dir_loop} error" >> $test_dir/test_log.txt
- exit 0
- fi
- dir_loop=$(($dir_loop+1))
- done
- count=$(($count+1))
- #rm -rf $test_dir/$dest_dir/*
- echo -----------------------------------------
- echo ----------------------------------------- >> $test_dir/test_log.txt
- done
- echo "-------copy and check success------------"
- echo "-------copy and check success------------" >> $test_dir/test_log.txt
版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/rockchip-emmc-stress-test.html