一般来说,购买一台云服务器,我们首先考虑的因素应该是性能,而不是价格。影响云服务器性能的因素很多,如cpu型号,核数,内存大小,内存类型,磁盘型号,带宽稳定性等,影响因素很多,此时做选择,最好能根据实际业务需求确定哪个因素影响更大。
本文主要从磁盘的角度,看看如何去测试磁盘性能。使用的工具是iozone,所属系统为linux。
Iozone是一个文件系统测试基准工具。可以测试不同的操作系统中文件系统的读写性能。可以通过 write, re-write, read, re-read, random read, random write, random mix, backwards read, record rewirte, strided read, fwrite, frewrite, fread, freread, mmap, async I/0 等不同的模式下的硬盘的性能。测试的时候请注意,设置的测试文件的大小一定要大过你的内存(最佳为内存的两倍大小),不然linux会给你的读写的内容进行缓存,会使数值非常不准确。
下载方式不细述,既可以下载源码包,也可下载编译好的RPM包,自行选择。以下是用法和分析介绍。
1.iozone -a
iozone将在所有模式下进行测试,使用记录块从4k到16M,测试文件大小从64k到512M。
1.iozone -Rab output.xls
如果想以图表形式显示测试结果,可以使用iozone将测试结果放在Excel中。
1.iozone -Ra -g 2g -i 0 -i 1
如果我们只关心文件磁盘的read/write性能,而不必花费时间在其他模式上测试,则我们需要指定测试模式。-i指定模式,以上模式0代表write/rewrite,模式1代表read/re-read。
iozone的可选参数很多,测试时我们只需记住几个常用参数即可。
下面以睿江云服务器的100G SSD磁盘作为测试盘,运行在模式0和模式1,数据块大小从4k到16k,文件大小为1g。
1./opt/iozone/bin/iozone -a -s 1g -i 0 -i 1 -f /tmp/testfile -y 4k -q 16k
结果:
测试结果主要看的是最后几行的数据,从左到右分别显示文件大小,数据块大小和各种读写方式下的吞吐量(单位KB/s)。如4k读的吞吐量为3883269kB/s。
总结
iozone是个强大的磁盘测试工具,不仅是因为它支持的读写模式多,而且可以输出excel格式数据,便于后期分析,在使用方便的同时,准确性也有一定保证。但是结果只显示吞吐量,对于磁盘IOPS和延时没有详细的数据可以观察,还是略有遗憾。