云服务器计算性能测试指导
操作场景
本文介绍如何测试云服务器的如下性能指标,用于评估云服务器的计算性能:
前提条件
- 云服务器运行状态正常。
- 云服务器已绑定弹性公网IP。
- 云服务器内部已安装必备工具,如果没有安装请执行以下命令进行安装:
- 测试CPU性能,需安装wget、tar工具:
Ubuntu操作系统:
sudo apt update sudo apt install wget sudo apt install tar
- 测试内存带宽性能,需安装wget、gcc工具:
sudo yum install -y wget gcc
Ubuntu操作系统:
sudo apt update sudo apt install wget sudo apt install gcc
- 测试CPU时延,需安装git工具及依赖库numactl-devel:
sudo yum install -y git numactl-devel
Ubuntu操作系统:
sudo apt update sudo apt install git libnuma-dev numactl
- 测试内存时延,需安装wget工具:
sudo yum install -y wget
Ubuntu操作系统:
sudo apt update sudo apt install wget
- 测试计算综合性能,需安装git工具:
sudo yum install -y git
Ubuntu操作系统:
sudo apt update sudo apt install git
- 测试CPU性能,需安装wget、tar工具:
测试CPU性能
- 安装测试工具Geekbench。
测试CPU性能,需要使用Geekbench工具,下面按不同版本进行介绍。
- Geekbench 3.4.2
- 远程登录云服务器实例。
详细操作,请参见Linux BMS登录方式概述。
- 执行以下命令,下载工具安装包。
wget http://cdn.primatelabs.com/Geekbench-3.4.2-Linux.tar.gz
- 执行以下命令,解压工具安装包。
tar -zxvf Geekbench-3.4.2-Linux.tar.gz
- 执行以下命令,进入工具所在目录。
cd ./dist/Geekbench-3.4.2-Linux
- 远程登录云服务器实例。
- Geekbench 5.5.1
- 远程登录云服务器实例。
详细操作,请参见Linux BMS登录方式概述。
- 执行以下命令,下载工具安装包。
wget https://cdn.geekbench.com/Geekbench-5.5.1-Linux.tar.gz
- 执行以下命令,解压工具安装包。
tar -zxvf Geekbench-5.5.1-Linux.tar.gz
- 执行以下命令,进入工具所在目录。
cd ./ Geekbench-5.5.1-Linux
- 远程登录云服务器实例。
- Geekbench 3.4.2
- 在云服务器上,执行以下命令,测试CPU性能。
./geekbench_x86_64
重复执行5次命令,保留5次的详细测试数据,最终取5次测试的平均值作为测试结果。
如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。
- 查看CPU性能测试结果。
在命令输出结果中,关注Integer Score、Floating Point Score取值,用于评估云服务器的CPU性能。
Benchmark Summary Integer Score 3247 24554 Floating Point Score 3312 25383
其中,第一列表示测试项,第二列数值表示单核结果,第三列数值表示多核结果。您可以根据输出结果,记录CPU性能测试的结果。
示例以CentOS 7.4操作系统为例介绍:
表1 CPU性能测试的结果记录 云服务器操作系统
CentOS 7.4
Flavor
xlarge
规格
4U16G
单核整形(Integer Score)
3247
单核浮点(Floating Point Score)
3312
多核整形(Integer Score)
24554
多核浮点(Floating Point Score)
25383
测试内存带宽性能
- 安装和编译测试工具stream.c v 5.10。
测试内存带宽性能,需要使用stream.c工具。
- 远程登录云服务器实例。
详细操作,请参见Linux BMS登录方式概述。
- 执行以下命令,下载工具安装包。
git clone https://github.com/jeffhammond/STREAM
或者
wget https://raw.githubusercontent.com/jeffhammond/STREAM/master/stream.c
- 执行以下命令,编译工具。
cd STREAM gcc -O3 -fopenmp -DSTREAM_ARRAY_SIZE=64000000 -DNTIMES=10 stream.c -o stream
- 远程登录云服务器实例。
- 在云服务器上,执行以下命令,测试内存带宽性能。
./stream
重复执行5次命令,保留5次的详细测试数据,最终取5次测试的平均值作为测试结果。
如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。
- 查看内存带宽性能测试结果。
在命令输出结果中,关注Copy、Scale、Add和Triad取值,用于评估云服务器的内存带宽性能。
Function Best Rate MB/s Copy: 73386.5 Scale: 72485.5 Add: 81241.2 Triad: 81385.7
其中,第一列表示测试项,第二列数值表示测试项对应的内存带宽数据。您可以根据输出结果,记录内存带宽性能测试的结果。
示例以CentOS 7.2操作系统为例介绍:
表2 内存带宽性能测试的结果记录 云服务器操作系统
CentOS 7.2
Flavor
xlarge
规格
4U16G
Copy 带宽
73386.5
Scale 带宽
72485.5
Add 带宽
81241.2
Trail 带宽
81385.7
测试CPU时延
- 安装和编译测试工具Rt-tests 1.0。
测试CPU时延,需要使用Rt-tests工具。
- 远程登录云服务器实例。
详细操作,请参见Linux BMS登录方式概述。
- 执行以下命令,下载工具安装包。
git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
- 执行以下命令,切换至对应版本。
cd rt-tests git checkout -b stable/v1.0 origin/stable/v1.0
- 执行以下命令,安装并编译工具。
make all make install
- 远程登录云服务器实例。
- 在云服务器上,执行以下命令,测试CPU时延。
./cyclictest -D 20s -q
重复执行5次命令,保留5次的详细测试数据,最终取5次测试的平均值作为测试结果。
如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。
- 查看CPU时延测试结果。
在命令输出结果中,关注时延的Avg取值,单位为us,用于评估云服务器的CPU时延。
# cyclictest -D 20s -q # /dev/cpu_dma_latency set to 0us T: 0 (12323) P: 0 I:1000 C: 20000 Min: 3 Act: 8 Avg: 5 Max: 31
其中,第一列表示测试项,第二列表示测试数值。您可以根据输出结果,记录CPU时延的结果。
示例以CentOS 7.2操作系统为例介绍:
表3 CPU时延测试的结果记录 云服务器操作系统
CentOS 7.2
Flavor
xlarge
规格
4U16G
CPU时延(Avg)
5 us
测试内存时延
- 安装和编译测试工具mlc 3.11a。
测试内存时延,需要使用mlc 3.11a工具。
- 远程登录云服务器实例。
详细操作,请参见Linux BMS登录方式概述。
- 下载工具安装包。
wget --no-check-certificate --no-cookies --header "Cookie: SSESS496a9a7de0a1eb537f6db5d919ea81a0=bva-AD4ri_7N1RdOVT7gGeAx8UOvop6uFx_-XBD5H4M;" https://downloadmirror.intel.com/866182/mlc_v3.12.tgz
- 解压并进入对应的测试目录。
tar -zxvf mlc_v3.12.tgz cd Linux
- 远程登录云服务器实例。
- 在云服务器上,执行以下命令,测试内存时延。
./mlc --latency_matrix -e -r
重复执行5次命令,保留5次的详细测试数据,最终取5次测试的平均值作为测试结果。
如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。
如果报错提示“echo xxxx”,请在当前系统执行以下命令后继续测试。
echo xxxx
其中,请使用具体报错信息替换命令中的“xxxx”。
- 查看内存时延测试结果。
在命令输出结果中,关注CPU访问同NUMA的内存时延和跨NUMA的内存时延,用于评估云服务器的内存时延。
Numa node Numa node 0 1 0 72.4 124.6 1 124.6 72.4其中,取第一行的数值即可,该数值表示node0的CPU访问node0和node1的内存时延。您可以根据输出结果,记录内存时延的结果。
示例以CentOS 7.2操作系统为例介绍:
表4 内存时延测试的结果记录 云服务器操作系统
CentOS 7.2
Flavor
xlarge
规格
4U16G
同numa内存时延
72.4
跨numa 内存带宽
124.8
测试计算综合性能
- 安装和编译测试工具UnixBench。
测试计算综合性能,需要使用UnixBench工具。
- 远程登录云服务器实例。
详细操作,请参见Linux BMS登录方式概述。
- 执行以下命令,下载工具安装包。
yum install -y git git clone https://github.com/kdlucas/byte-unixbench.git
- 执行以下命令,修改多核运行限制。
cd byte-unixbench/UnixBench sed -i 's/0 }/128 }/g' Run
将文件中两处maxCopies => 0改为maxCopies => 128。
- 远程登录云服务器实例。
- 在云服务器上,执行以下命令,测试计算综合性能。
./Run
由于Unixbench本身采用了多次测试,该软件仅测试1次,取测试结果。
如果测试正常完成,过程中未报错且软件不退出,表示测试结果符合预期。
- 查看计算综合性能测试结果。
在命令输出结果中,会先后打印单核和多核的测试结果,分别获取单核和多核的综合计算得分(System Benchmarks Index Score),用于评估云服务器的计算综合性能。
System Call Overhead 15000.0 2523897.7 1682.6 ======== System Benchmarks Index Score 1499.9 ------------------------------------------------------------------------ ... System Call Overhead 15000.0 5875941.4 3917.3 ======== System Benchmarks Index Score 3802.1示例以CentOS 7.2操作系统为例介绍:
表5 计算综合性能测试的结果记录 云服务器操作系统
CentOS 7.2
Flavor
xlarge
规格
4U16G
单核综合得分
1499.9
多核综合得分
3802.1
测试CPU时延时下载rt-test工具遇到的问题
问题1:出现“fatal: Unable to look up git.kernel.org (port 9418) (Name or service not known)”报错。
可能原因:云服务器连接不上git.kernel.org,可能是网络配置拦截了Git的端口9418。
解决办法:
将下载命令中的git替换成https。
git clone https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
问题2:提示编译报错。
问题原因:没有安装numa依赖包。
解决办法:
执行如下命令,安装依赖包。
- HCE OS或CentOS操作系统:
yum install -y numactl-devel
- Ubuntu操作系统:
apt install -y libnuma-dev
测试计算综合性能时下载Unixbench工具遇到的问题
问题1:出现“fatal: unable to access 'https://github.com/kdlucas/byte-unixbench.git/': Peer's Certificate issuer is not recognized.”报错。
问题原因:该报错表示SSL证书错误,是系统证书的问题,系统判断到这个行为会造成不良影响,所以进行了阻止,需要设置跳过SSL证书验证。
解决办法:
执行以下命令,跳过SSL证书验证。
git config --global http.sslVerify false
问题2:缺少“Time::HiRes module”。
解决办法:
执行以下命令,安装对应模块。
yum install -y perl-Time-HiRes