云计算产品性能测试指南

时间:2022-09-14 13:13:04

本文所有操作对应的是 centos 系统,并且用户假设为 root 用户。根据本文所述指南,我对腾讯云和阿里云的三个云计算基础产品进行了评测,产品类别包括云服务器、云数据库和对象存储。具体对比结果请看:

云服务器

在开始测试云服务器之前,推荐按量计费方式购买实例。同时确保用于对比的云服务器配置规格相同或具有可比性

在云服务器的测试过程,我将先通过 UnixBench 和 GeekBench 这两个常用的基准测试工具,获得对主机的一个总体评分。然后再从 CPU、内存和磁盘 I/O 等方面进行单项测试。

1、UnixBench 

UnixBench 是测试类 Unix 系统性能的老牌工具,也是常用的基准测试工具。它会执行 11 个单项测试,包括字符串处理、浮点运算效率、 文件数据传输、管道吞吐等,然后将结果与一个基准系统进行比较,得到一个指数值。指数值越高,性能越好。

最终的得分比单个测试的结果根据参考价值,而且也方便对服务器进行比较

在安装 UnixBench 之前,要先准备好相关的依赖。请执行:

[root@ceshi yum.repos.d]#yum -y install  perl  make gcc

下载安装包,然后按下面的提示操作。官方的源在 googlecode 上,国内访问不便,我已经将文件上传到对象存储服务。

   

[root@ceshi yum.repos.d]# mkdir /unixbench

[root@ceshi yum.repos.d]# cd /unixbench/

[root@ceshi unixbench]# wget http://codingpy-1252715393.cosgz.myqcloud.com/archive/UnixBench5.1.3.tgz

[root@ceshi unixbench]# tar xf UnixBench5.1.3.tgz

[root@ceshi unixbench]# cd UnixBench

运行 make 之前,确保将 Makefile 文件中 GRAPHICS_TEST = defined 行被注释掉,因为我们是在服务器端进行测试,不需要做 2D/3D 图形测试

[root@ceshi UnixBench]# vi Makefile

[root@ceshi UnixBench]# make

[root@ceshi UnixBench]# ./Run

如果一切正常,应该会出现类似下面的文字:

云计算产品性能测试指南

如果报错:

[root@ceshi UnixBench]# ./Run 

Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./Run line 6.

BEGIN failed--compilation aborted at ./Run line 6.

检测是出现缺少perl Time HiRes组件造成的,并不是所有的UnixBench跑分的时候都会遇到这样的问题。

解决方法:

[root@ceshi UnixBench]# yum -y  install perl-Time-HiRes

UnixBench 测试的运行时间比较长,期间可以离开去干别的事情

除了直接在命令行输出测试结果之外(如下图),还会在 result 目录下生成一个 HTML 格式的报告,可以将其拷贝至本地。

云计算产品性能测试指南

一般来说,得分在 1000 以上的云服务器就算还不错的

2、磁盘I/O

磁盘 I/O 也是云服务器性能的重要指标,一般是选择读写速度快的。磁盘 I/O 性能测试主要分为两类:顺序读写和随机读写。顺序读写频繁,应该关注数据吞吐量指标;随机读写频繁,核心指标则是 IOPS,即每秒的输入输出量(或读写次数)。我们的云服务器上主要是存储一些小文件,更注重随机读写性能。

Fio 是测试磁盘 I/O 的传统基准工具。安装非常简单:

[root@ceshi ~]# yum -y install fio

[root@ceshi ~]# fio --name=randread --ioengine=libaio --direct=1 --bs=4k --iodepth=64 --size=4G --rw=randread --gtod_reduce=1

云计算产品性能测试指南

部分选项的说明如下:

  • direct=1:测试过程绕过机器自带的 buffer,使测试结果更加真实。

  • rw=randread:测试随机读的 I/O

  • size=4G:本次测试文件的大小为 4G

  • bs=4k:单次 I/O 的块文件大小为 4KB

  • iodepth=64:一次执行 64 个操作

使用如下命令测试磁盘随机写性能:

fio --name=randwrite --ioengine=libaio --direct=1 --bs=4k --iodepth=64 --size=4G --rw=randwrite --gtod_reduce=1

IOPS 的值越高,磁盘读写性能越好


还有待后续