准备工作
-
明确测试项目和指标
本例:
CPU:每秒运算数
内存:内存带宽、内存延迟
存储:IOPS、带宽、时延
网络:上传、下载带宽
-
对比基准测试数据以对结果进行评估
数据来源可以为云商提供的产品介绍或者其他的测评报告,测试时维持配置一致即可。
本测试机型为8核心32GB机器,对比以下基准数据
开始测试
-
CPU
1、测试工具sysbench
# threads与cpu核心数量一致,避免上下文切换,建议测试3次,取平均结果 rpm -ql sysbench || yum -y install sysbench sysbench cpu --cpu-max-prime=20000 --threads=8 --time=50 run sysbench cpu --cpu-max-prime=20000 --threads=8 --time=50 run sysbench cpu --cpu-max-prime=20000 --threads=8 --time=50 run
2、关键结果
3、基准数据对比评价:略
-
内存带宽:
1、测试工具stream
# stream需要手动编译后执行,编译的参数会影响到测试结果 rpm -ql gcc || yum -y install gcc [ -e stream.c ] || wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c gcc -march=native -O3 -mcmodel=medium -fopenmp -DSTREAM_ARRAY_SIZE=100000000 -DNTIMES=30 -DOFFSET=4096 stream.c -o stream.o ./stream.o
2、关键结果
3、基准数据对比评价:略
4、额外说明:stream.c的编译参数对于测试结果有较大影响,其中参数的作用可以参见这篇文章
-
内存延迟
1、测试工具Intel MLC
[ -e mlc_v3.9.tgz ] || wget https://software.intel.com/content/dam/develop/external/us/en/protected/mlc_v3.9.tgz [ -d Linux ] || tar xzf mlc_v3.9.tgz num=$(cat /proc/sys/vm/nr_hugepages 2> /dev/null) echo 4000 > /proc/sys/vm/nr_hugepages cd Linux && ./mlc --latency_matrix echo $num > /proc/sys/vm/nr_hugepages
2、关键结果
3、基准数据对比评价:略
-
存储
1、测试工具fio
#将命令中的target替换成目标磁盘(块设备而非分区),此此操作会破坏磁盘数据,如果不像破坏磁盘数据,请将测试目标替换为磁盘挂载的目录中的一个文件 #随机读IOPS fio -bs=4k -ioengine=libaio -iodepth=32 -direct=1 -rw=randread -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-iops --size=1G -filename=${target} --runtime=30s #随机写IOPS fio -bs=4k -ioengine=libaio -iodepth=32 -direct=1 -rw=randwrite -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-iops --size=10G -filename=${target} --runtime=30s #随机读时延 fio -bs=4k -ioengine=libaio -iodepth=1 -direct=1 -rw=randread -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-lat --size=10G --runtime=30s -filename=${target} #随机写时延 fio -bs=4k -ioengine=libaio -iodepth=1 -direct=1 -rw=randwrite -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-lat --size=10G --runtime=30s -filename=${target} #随机读带宽 fio -bs=128k -ioengine=libaio -iodepth=32 -direct=1 -rw=read -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-read-throughput --size=10G --runtime=30s -filename=${target} #随机写带宽 fio -bs=128k -ioengine=libaio -iodepth=32 -direct=1 -rw=write -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-write-throughput --size=10G --runtime=30s -filename=${target}
2、关键结果
3、基准数据对比评价:略
4、额外说明:不能进使用一条命令的结果来获取各个指标项目的值,因为参数的不同会导致结果的不同而影响到获取到的指标的值,使用具体的命令获取具体项目的值已得到更真实的结果
-
网络测试
1、测试工具speedtest
rpm -ql speedtest || (yum install wget && wget https://bintray.com/ookla/rhel/rpm -O bintray-ookla-rhel.repo && mv bintray-ookla-rhel.repo /etc/yum.repos.d/ && yum -y install speedtest) speedtest
2、关键结果:见终端输出
3、基准数据对比评价:略
4、额外说明:speedtest仅测试最近的一个测速点,如果想更换测速点,使用speedtest -L 列出测速点,使用speedtest -s <上一条命令获取的测速节点的编号>测试指定测速点