数据大小为1G,基本测试为单线程,测试项目为写入数据
1.1cp测试
测试方法
function time_diff() {
# time format:date +"%s.%N", such as 1502758855.907197692
start_time=$1
end_time=$2
start_s=${start_time%.*}
start_nanos=${start_time#*.}
end_s=${end_time%.*}
end_nanos=${end_time#*.}
# end_nanos > start_nanos?
# Another way, the time part may start with 0, which means
# it will be regarded as oct format, use "10#" to ensure
# calculateing with decimal
if [ "$end_nanos" -lt "$start_nanos" ];then
end_s=$(( 10#$end_s - 1 ))
end_nanos=$(( 10#$end_nanos + 10**9 ))
fi
# get timediff
time=$(( 10#$end_s - 10#$start_s )).`printf "%03d\n" $(( (10#$end_nanos - 10#$start_nanos)/10**6 ))`
echo $time
}
function copyfile_test() {
#echo "copyfile_test"
starttime=`date +'%s.%N'`;
#echo $starttime
#cp ${COPY_FILE_NAME} ${LOCAL_DIR}/testspeedfile -R
cp /tempfile.dat.0.0 /home/mnt2/testspeedfile
endtime=`date +'%s.%N'`;
#echo $endtime
time=`time_diff ${starttime} ${endtime}`
file_size="$(du -b /home/mnt2/testspeedfile | awk '{print $1}')"
speed="$(echo "scale=3;$file_size/$time/1024/1024" | bc)"
echo "size:${file_size}B,time:${time}s,speed:${speed}MB/s"
exit 0
#echo "======> size:${file_size}B, all_time:${time}s, speed:${speed}MB/s"
}
测试结果322.113MB/s
1.2dd测试
time dd if=/dev/zero of=/home/mnt1/test bs=1M count=1024 (402MB/s)
time dd if=/dev/zero of=/home/mnt1/test bs=1M count=1024 oflag=dsync (267MB/s)
time dd if=/dev/zero of=/home/mnt1/test bs=1M count=1024 oflag=direct (261MB/s)
1.3iozone测试
iozone -a -s 1g -i 0 -f /home/mnt1/test -Rb ./test.xls
最左侧一列是测试文件的大小(Kbytes);最上的横行,是记录大小;中间数据是测试的传输数据速度,如图在大小为1048576Kb,以记录大小为4K来进行传输,它的传输速度为425319kB/s(415MB/s)
iozone -a -s 1g -i 0 -f /home/mnt1/test -r 256 -Rb ./test.xls -I -p
iozone -Rab /root/iozone.xls -s 2G -i 0 -i 1 -y 1024k -q 4096k -I -p
-I 对所有文件操作使用DIRECT I/O.通知文件系统所有操作跳过缓存直接在磁盘上操作
1.4Fio测试
单线程:267MB/s
fio -ioengine=psync -filename=/home/mnt1/fiotest -bs=1024k -fdatasync=1 -rw=write -size=1g -runtime=60 -name="pingcap"
单线程:371MB/s,去掉同步
fio -ioengine=psync -filename=/home/mnt1/fiotest -bs=1024k -rw=write -size=1g -runtime=60 -name="pingcap"
4个线程:368MB/s
fio -ioengine=psync -filename=/home/mnt1/fiotest -bs=1024k -fdatasync=1 -numjobs=4 -rw=write -size=1g -runtime=60 -name="pingcap"
8个线程:392MB/s
fio -ioengine=psync -filename=/home/mnt1/fiotest -bs=1024k -fdatasync=1 -numjobs=8 -rw=write -size=1g -runtime=60 -name="pingcap"
1.5 bonnie++测试(340MB/s)
bonnie++ -d /home/mnt1 -s 1592 -u root -f >>bonnietest
Sequential Output部分表示写文件的相关信息
Sequential Input部分表示读文件的相关信息
Per Chr表示以字符为单位读写文件
Block表示以block为单位读写文件
Rewrite表示修改并重写已经存在的文件的每一个block
K/sec表示每秒读或写文件的速率,以K为单位
%CP表示在某阶段执行操作时平均消耗的CPU