云主机性能测试与性价比评测目录1概要 (2)2测试环境 (3)3测试工具与方法 (6)4 测试结果 (10)5 测试结果评分 (13)6 测试结果分析 (20)附录一UnixBench测试代码 (23)附录二FIO测试代码 (23)附录三DD测试代码 (23)附录四Phoronix-test-suite官网上传结果 (24)附录五云主机选型 (26)1概要最近这些年,云计算越来越成为各个企业的业务方向,个人和企业用户开始使用各种各样的云计算服务。
本文着重介绍了云主机的特点,云主机性能测试的方法,以及对几家典型高磁盘性能的云主机进行性能测试与性价比评测。
我们选取了亚马逊AWS EC2、DigitalOcean、Linode、阿里云、PPPCloud作为测试目标。
其中前三家都有明确的全SSD云主机,阿里云支持组装出SSD盘云主机,PPPCloud默认是全SSD支撑的云主机。
2测试环境2.1 测试云主机选型各大厂商云主机选型,遵循“配置最优”的原则,即每个厂商的在相同配置下选用配置优化最好的云主机,使对比更有准确性。
2.11 EC2--亚马逊●类型:类型选用c4.xlarge,此类型为计算优化系列,vCPU 与内存比率比其他系列高;●EBS:实例类型支持EBS 优化功能,为Amazon EBS I/O 提供额外的、专用的吞吐量。
●卷类型:选用预配置IOPS (SSD) 卷,硬盘选用80G后,IOPS选用最高的2400●具体选型方法,见附录五2.12 EC2--亚马逊--高IOPS●类型:类型选用c4.xlarge,此类型为计算优化系列,vCPU 与内存比率比其他系列高;●EBS:实例类型支持EBS 优化功能,为Amazon EBS I/O 提供额外的、专用的吞吐量。
●卷类型:选用预配置IOPS (SSD) 卷,硬盘选用670G后,IOPS选用最高的20000●具体选型方法,见附录五注:增加此类选型,原因有两点:1)IOPS 必须介于100 和20000之间;2)IOPS 和卷大小之间的最大比率为30:1。
因此为了测试亚马逊最高的IOPS的性能,选用了670G的硬盘进行测试。
2.13 PPPCloud●PPPCloud有4中类型的选择,为了对比的一致性,选择第三种类型;●PPPCloud独创了智能按秒计费的模式,因此选择按流量计费的模式;●具体选型方法,见附录五2.14 DigitalOcean●DigitalOcean有9种类型的选择,为了对比的一致性,选择第5种类型●具体选型方法,见附录五2.15 Linode●DigitalOcean有9种类型的选择,为了对比的一致性,选择第4种类型;●此种类型硬盘为192G,为了对比的一致性,在部署镜像的过程中,选择80G的硬盘;●Linode支持选择数据盘,因此创建了60G的数据盘,用于与阿里云对比数据盘的性能;●具体选型方法,见附录五2.16 ECS--阿里云●实例类型:实例系列选择系列一,不选择I/O优化(为了使用本地SSD),规格为4核8G;●阿里云支持选择数据盘,因此创建了60G的数据盘,用于与Linode对比数据盘的性能;●具体选型方法,见附录五2.2 测试云主机配置2.22 EC2--亚马逊--高IOPS2.24 DigitalOcean2.25 Linode注:linode可以选择数据盘,因此选择一块60G的sdb盘2.26 ECS--阿里云注:阿里云系统盘只能为20G,因此选择一块60G数据盘进行fio测试;3测试工具与方法3.1 UnixBench3.1.1 测试软件介绍UnixBench是Linux平台性能测试的主流工具。
Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。
大多数VPS都是没有显卡或者是集显,所以图像性能无需测试,因此将图形化测试项注释掉了。
(如果你需要测试graphic,则需要修改Makefile,不要注释掉”GRAPHIC_TESTS = defined”,同时需要系统提供x11perf命令gl_glibs 库。
)3.1.2 测试软件版本版本信息:UnixBench5.1.3配置信息:#GRAPHIC_TESTS = defined,即无graphic测试项参数信息:无3.1.3 测试方法使用一键式脚本,进行测试,脚本测试方法见附录一。
3.2 Fio命令3.2.1 软件介绍磁盘的测试主要使用fio工具,该工具能够对磁盘的吞吐和iops进行测试,是较为权威的测试工具。
3.2.2 测试软件版本版本信息:fio-2.1.3配置信息:无参数信息:,direct=bool,-iodepth 1 -thread -rw=$x -ioengine=psync -bs=4k -size=20G -numjobs=10 -runtime=300 -group_reporting -name=mytest3.2.3 测试方法测试项包括write randwrite read randread等4种类型,每种类型指定两种块大小4k、8k 测试,测试大小为20G。
测试代码见附录二3.3 DD命令3.3.1 测试软件介绍dd使用两种参数进行测试1)dsync可以当成是模拟数据库插入操作,在/dev/zone中读出一条数据就立即写入硬盘2) -fsync同样也是将数据已经写入磁盘,但是是在经过缓存后最后再写入硬盘3.3.2 测试软件版本版本信息:dd (coreutils) 8.4配置信息:无参数信息:if=,bs=BYTES,count=N,oflag=FLAGS,conv=CONVS3.3.3 测试方法具体的测试代码见附录三3.4 Phoronix-test-suite3.4.1 测试软件介绍phoronix-test-suite非常好用的系统基准测试工具,整合linux大部分测试软件,测试项多达200种,最终可以上传到网上进行结果查询。
3.4.2 测试软件版本3.4.2.1 Processor Tests版本信息:测试主版本Phoronix Test Suite v5.8.1 (Belev)测试套件版本c-ray-1.1.0配置信息:无参数信息:benchmark pts/ c-ray-1.1.03.4.2.2 System Tests版本信息:测试主版本Phoronix Test Suite v5.8.1 (Belev)测试套件版本pybench-1.0.0配置信息:无参数信息:benchmark pts/pybench-1.0.03.4.2.3 Memory Tests版本信息:测试主版本Phoronix Test Suite v5.8.1 (Belev)测试套件版本pts/stream-1.2.0配置信息:测试项为Triad参数信息:benchmark pts/stream-1.2.03.4.2.4 Disk Tests版本信息:测试主版本Phoronix Test Suite v5.8.1 (Belev)测试套件版本aio-stress-1.1.1配置信息:无参数信息:benchmark pts/aio-stress-1.1.13.4.3 测试方法3.4.3.1 Processor Testsc-ray是一款多线程测试软件,用于测试Processor。
测试方法为:phoronix-test-suite benchmark pts/c-ray-1.1.03.4.3.2 System Tests测试方法为:phoronix-test-suite benchmark pts/pybench-1.0.03.4.3.3 Memory TestsSTREAM 是业界广为流行的综合性内存带宽实际性能测量工具之一。
随着处理器处理核心数量的增多,内存带宽对于提升整个系统性能越发重要,如果某个系统不能够足够迅速地将内存中的数据传输到处理器当中,若干处理核心就会处于等待数据的闲置状态,而这其中所产生的闲置时间不仅会降低系统的效率还会抵消多核心和高主频所带来的性能提升因素。
STREAM 具有良好的空间局部性,是对TLB 友好、Cache友好的一款测试。
测试方法为:phoronix-test-suite benchmark pts/stream-1.2.03.4.3.4 Disk Tests测试方法为:phoronix-test-suite benchmark pts/aio-stress-1.1.14 测试结果4.1 UnixBench测试结果注:由于Linode为6核,为了方便与其他云厂商进行对比,因此linode的分值算法为:实际结果*4/6,即4207.2*4/6=2804.84.2 Fio测试结果系统盘测试结果注:使用Fio测试,会对系统盘造成损失,甚至系统崩溃,在几个云主机测试过程中,由于linode使用系统盘测试时,系统直接无法使用,因此无法得出系统盘的测试结果数据盘测试结果:注:可以创建数据盘的云主机只有阿里云和linode,因此只有这两家的测试数据4.3 DD测试结果4.4 Phoronix-test-suite测试结果4.4.1 Processor Tests测试结果注:测试的数据越小越好4.4.2 System Tests测试结果注:测试的数据越小越好4.4.3 Memory Tests测试结果注:测试的数据越大越好4.4.4 Disk Tests测试结果注:测试的数据越大越好5 测试结果评分5.1 UnixBench评分5.1.1 评分基准1)每项测试结果分值最高者为100,其他按结果数据比例进行分值的确定2)对于单核评分,直接按照百分制分值计算即可;对于四核评分,linode配置为6核,因此理论上4核的结果应该为“测试结果”*4 / 6 5.1.2 评分公式最高者测试分值:max;本机测试分值:local;比例:ratio=local/max;最终结果result=ratio*1005.1.3 评分结果5.2 Fio I/O评分基准5.2.1 评分基准1)每项测试结果分值最高者为100,其他按结果数据比例进行分值的确定2)为了体现厂家真实的磁盘性能,评分按照趋于稳定后的I/O结果进行评定3)测试项共8项(4k中read、write、randread、randwrite,8k中read、write、randread、randwrite),其中每项均按照比例进行分值确定,最终再按照百分制进行合并计算4)Linode由于系统盘使用fio测试后,系统崩溃,因此没有Linode的数值,但是综合UnixBech、dd、Phoronix Disk测试结果,预估其分值应该在pppcloud和Do之间,大致分值可以定为855.2.2 评分公式单项最高者测试分值:max;单项本机测试分值:local;单项比例:ratio=local/max;单项结果:single_result =ratio*100总体结果:result = ∑single_result / 85.2.3 评分结果5.3 DD评分基准5.3.1 评分基准1)每项测试结果分值最高者为100,其他按结果数据比例进行分值的确定2)dd测试过程中测试了5次,取平均值得出测试的整体水平3)dd测试了两种情况,因此得分会包含两种百分制分值5.3.2 评分公式最高者测试分值:max;本机测试分值:local;比例:ratio=local/max;最终结果result=ratio*1005.3.3 评分结果5.4 Phoronix-test-suite评分基准5.4.1 评分基准1)每项测试结果分值最高者为100,其他按结果数据比例进行分值的确定2)Phoronix-test-suite测试process、memory、system、disk 四种类型,每种类型均得出百分制分值3)process和system测试结果单位为时间,即数值越小性能越好;disk和memory测试结果单位为MB/s,即数值越大性能越好5.4.2 评分公式最高者测试分值:max;本机测试分值:local;比例:ratio=local/max;最终结果result=ratio*1005.4.3 评分结果5.5 整体性能评分5.5.1 评分基准1)测试工具评测根据linux评测工具使用频率、测试效果、测试整体性,来确定每种工具的权重比例。