前言
对于所有的公有云服务商来说,云主机是非常基础且重要的业务。那么在高性能云计算方面,作为互联网巨头的阿里云、腾讯云以及新兴云计算企业的代表华为云、七牛云和UCloud又有怎样的表现呢?
最近,我们选择了阿里云、腾讯云、华为云、七牛云和UCloud这几家主流云服务商的云主机产品进行评测。
主机选取
虽然任意一家云服务商都无法保证同一系列所有的机器性能都一致,但通过样本的检测我们还是能大致了解各家云服务商的实力。本次选择的云主机配置为4核16G。为了较为公平的比较各家云服务商的主机性能,我们尽量选取了各家配置近似的机型,CPU均为Intel Xeon Skylake系列。
价格或有浮动,但就当前来看七牛云的主机的价格在短期和长期都较为有竞争力,其次华为云和阿里云的价格也比较实惠。UCloud和腾讯云的主机适合短期购买,长期购买时优惠较低。
测评工具一览
UnixBench
SuperPI
CpuBurn
FIO
Iperf3
Memtester
Unixbench整机跑分
UnixBench是国外著名的linux跑分软件,被广泛用与测试linux系统主机的性能。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。通过它跑出的分数,你可以大概知道购买的云主机处于一个怎么的性能。
下面的脚本使用了UnixBench5.1.3来测试,注释了关于graphic的测试项(如果你需要测试graphic,则需要修改Makefile,不要注释掉”GRAPHIC_TESTS = defined”,同时需要系统提供x11perf命令gl_glibs库。)
测试命令
wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh
chmod +x unixbench.sh
./unixbench.sh
测试说明
各项测试都有得分,性能的基线源于1995 年,名为“George”的系统,一个工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此系统的指数值被设定为10,所以,如果一个系统的最后结果分数为520,意思是指此系统比基线系统运行快52 倍。
单简单粗暴的从整体评分来看腾讯云表现最好,七牛云和华为云也有不俗的表现。但是仔细的研究各项测试我们可以发现各家主机都各有亮点。
从几次的File Copy测试的评分来看,七牛云、华为云在文件读取方面性能较优。相较而言UCloud在这方面表现不足。
从几次的Shell脚本测试的评分来看,华为云略占优势,其余云服务商差距不大。
由于其余几项测试对比维度比较单一,这里就不再一一列举了。但是根据UnixBench的测试数据,确实能看出就算时跑分较低的机器在某些方面的性能也可能会比较突出。大家在选取机器时可以有针对性的购买。
CPU测试
1、通过bc命令计算圆周率
用Linux自带的bc计算器计算pi值
测试命令
time echo "scale=5000; 4a(1)" | bc -l -q
time是计时程序。scale是精度,4a(1)调用了反正切函数。
2、Super PI
Super PI是利用CPU的浮点运算能力来计算出π(圆周率),所以目前普遍被超频玩家用做测试系统稳定性和测试CPU计算完后特定位数圆周率所需的时间
测试命令
wget http://www.linuxfly.org/attachment/superpi_linux.tar.gz
tar xzvf superpi_linux.tar.gz
cd superpi
./super_pi 25
以上圆周率计算测试的结果比较一致,性能的排名为腾讯云>七牛云>阿里云>华为云>UCloud
3、CpuBurn
程序会加热CPU到它所能承受最大工作温度,它可以使用户在实际应用中加速cpu,测试cpu在高强度运算时的稳定性。
测试命令
wget https://cdn.pmylund.com/files/tools/cpuburn/linux/cpuburn-1.0-amd64.tar.gz
tar -zxvf cpuburn-1.0-amd64.tar.gz
cd cpuburn
nohup ./cpuburn > ~/cputest.log &(压力测试耗时长,设置后台运行)
在三次时长24小时的压力测试中,UCloud 压力测试软件多次崩溃,最短测试时间为2h11m10s。腾讯云出现一次测试程序崩溃,测试时长3h11m10s。阿里云、华为云和七牛云均正常运行。
结合圆周率计算和CPU压力测试的综合表现,腾讯云在短期高频计算体现出不错的能力,但是对于长期高负荷的运算还是有待进一步的检测,反而阿里云和七牛云在短期和长期的高频运算时都表现出了不错的能力。
IO性能测试
FIO
性能测试建议直接通过读写裸盘的方式进行测试,会得到较为真实的数据。但直接测试裸盘会破坏文件系统结构,导致数据丢失,请在测试前确认磁盘中数据已备份。
测试命令
1、测试顺序读性能
fio -filename=/tmp/testfile -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=1 -runtime=60 -group_reporting -name=mytest
2、测试顺序写性能
fio -filename=/tmp/testfile -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=1 -runtime=60 -group_reporting -name=mytest
3、测试随机读性能
fio -filename=/tmp/testfile -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=1 -runtime=60 -group_reporting -name=mytest
4、测试随机写性能
fio -filename=/tmp/testfile -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=1 -runtime=60 -group_reporting -name=mytest
我们可以看到总体来说阿里云和七牛云在文件读写方面有着稳定而优质的表现。其次华为云在多线程读文件也有亮眼的成绩。
网络测试(5M带宽)
Iperf3
iperf命令是一个网络性能测试工具。iperf可以测试TCP和UDP带宽质量
我们在这里测试udp带宽质量应为udp通信开销小,测试的带宽更准确。要获得带宽数据,需要不断在client端增加带宽值,直到server端出现轻微的丢包为止,此时server端显示的带宽就是被测系统的吞吐量。
测试命令
yum install iperf3
服务端 iperf3 -s -u
UDP客户端 iperf3 -c [ip地址] -u -b [带宽]
(需要配置安全组,否则可能会连接失败)
通过tcp检测来看各家的带宽都不存在虚标的情况,甚至在短时间内可以达到比所购买的带宽更高一点的性能。网络状态也非常良好。
内存测试
Memtester
测试命令
wget http://pyropus.ca/software/memtester/old-versions/memtester-4.2.2.tar.gz
tar zxvf memtester-4.2.2.tar.gz
cd memtester-4.2.2
make && make install
./mentester 16G 3
Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, 可以对系统现有的内存进行上面项目的测试。
对内存进行压力测试
测试命令
nohup ./memtester 16G ?> /tmp/memtest.log &
所有主机都通过了24小时的内存压力测试
总结
仅以以上的数据,我们可以做个粗略的总结。
- 腾讯的主机在短时间的高频计算的性能最好,但是长时间的高频计算能力仍待考量。
- 阿里和七牛的主机性能较好,不管在短时间和长时间的计算都有较为不错的结果,而且在文件读写方面都有不错的表现。
- 华为云在多线程时表现良好。
- UCloud 在几项测试中表现一般。
补充说明
以上只是对于主机性能的测试,除了主机本身外,用户还需关心什么呢?可以从以下几个方面来考虑:
第一:主机价格是否合理。购买云主机与购买私有主机不同,采购私有主机是一次性投入,购买后用还是不用,用的好还是不好,都不会对你后续的投入产生持续性影响。而购买云主机,则需要时刻提醒自己: 虽然初期投入较少,但每过一天,就会产生一天的费用。所以如何用更为实惠的价格获取到品质相同的主机,是非常值得考虑的问题。正如之前分析的那样,从短期来看七牛云和UCloud价格比较有优势。如果需要长期使用云主机则适合采购七牛云、阿里云和华为云的主机。大家也可以关注云服务商不定时的开展各种活动,可以购买到各种实惠的主机,新用户在UCloud也可以得到一些主机代金券用来测试,之前七牛云做活动时笔者甚至没花钱就get到了一台主机。
第二:云主机操作的学习成本。云服务商的操作界面的友好性,可以直接决定你是否能顺利的使用产品。其次,当你确实对于主机功能有所疑惑时,云服务商提供的文档是否齐全,是否能指导你解决问题,也是我们需要考虑的。这里做的最好的当属华为云。当然阿里云、腾讯云和七牛云的帮助文档也很齐全。
第三:云主机售前售后服务响应能力。这应该是最为重要的因素。因为云主机的特殊性,用户无法真正的接触到主机。当主机出了问题后我们需要云服务商能够及时的给出解决方案以免业务受到影响。不久前某云服务商出的一次事故直接导致了一家创业公司的业务直接崩溃,对于这种问题用户根本无从下手只能依赖云服务商。当然这只是小概率事件。但是就用户而言我们当然更希望自己的问题能够得到及时的处理。这里不得不说,七牛云和UCloud对于中小型客户的支持力度,就连个人用户也能提供个性化的服务。
原文地址:https://blog.51cto.com/7741292/2358465