以笔者最近接触的一个案例大数据上云为例,首先客户需要测试自己在IDC服务器的性能作为基线,并与上云后的云服务器做比较,因服务器型号厂家都有区别为满足业务需要,所以会先通过工具测试一下内网带宽、CPU性能等数据作为IDC上云的基线,不同型号架构的机器在满足基线基础上再来横向看性价比,以下就介绍两款测试网络与CPU性能的工具。
网络测试工具说明
iperf是一款网络性能测试工具,可以为网络生成标准化的性能测量结果。iperf具有客户端和服务器功能,并且可以创建数据流来测量两端之间单向或双向的吞吐量。iperf支持TCP和UDP协议,作为开源的跨平台工具,支持Linux、Unix和Windows平台。
内网带宽测试相关指标:
关于iperf的关键指标:
- Transfer:(iperf)传输数据量,数值越高,说明单位时间内传输的数据量越多,该指标越大越好。
- Bandwidth:(iperf带宽。数值越高,说明测量出的网络带宽越大。该指标越大越好。)
性能测试
一、环境准备
创建2台按量计费CVM,地域可用区不限,2台CVM在同一VPC子网下,并配置公网IP(默认5Mb/s的带宽即可),相关配置如下:
二、内网宽带测试
1、登录cvm机器
打开CVM控制台,找到刚刚创建的2台cvm机器,点击登录
2、安装iperf工具
在终端输入命令,并回车确认执行(2台cvm机器都要安装):
1 | yum install iperf -y |
3、在A机器运行iperf作为服务端
随意选择某台机器作为测试的服务端,例如机器A(内网ip xxx.xxx.xxx.xxx),并执行命令,选择8000端口让它作为iperf服务端:
1 | iperf -s -p 8000 |
注:需要开启防火墙对8000端口的限制
4、在B机器开始测试内网带宽
在另一台机器,如机器B(内网ip yyy.yyy.yyy.yyy),执行命令开始测试:
1 | iperf -c xxx.xxx.xxx.xxx -p 8000 -t 10 -P 8 |
这里xxx.xxx.xxx.xxx替换为服务端A机器的内网ip,其余参数可保持不变,其中-t 10代表测试持续总时间为10秒,-P 8代表建立8个并行连接去测试,通常机器内网带宽越大,并行连接数也需要调大一点才能压测出带宽上限。
等待测试结束后,我们观察测试报告,例如:
从报告中可以看出,iperf创建了8个连接,以及各个连接传输的数据量大小(Transfer列)和带宽值(Bandwidth列),这里我们只看SUM汇总这一行,可以看到带宽值为1.65Gbits/sec。我们S5 2核2G这个规格的内网带宽是1.5Gbps,因此压测结果符合预期。
CPU性测试工具
UnixBench:UnixBench是一个类unix系统(Unix,BSD,Linux)下的性能测试工具,一个开源工具,被广泛用与测试Linux系统主机的性能。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。
CPU性能测试相关指标:
- Dhrystone 2 using register variables:(UnixBench)整型运算能力。得分越高,运行一个任务所需的时间越短,执行速度越快。该指标越大越好。
- Double-Precision Whetstone:浮点型运算的能力。得分越高,运行一个任务所需的时间越短,执行速度越快。该指标越大越好。
- System Benchmarks Index Score:综合指标,包括CPU多项计算能力、文件copy等能力。该指标越大越好。
1、登录云服务器CVM机器
打开云服务器CVM控制台,找到刚刚创建的2台机器,选择任意一台机器,点击登录
2、安装UnixBench工具
在终端输入命令,并回车确认执行:
1 | wget http://mirrors.tencent.com/repoforge/source/unixbench-5.1.2-1.rf.src.rpm && rpm2cpio unixbench-5.1.2-1.rf.src.rpm | cpio -div && tar -xzvf unixbench-5.1.2.tar.gz && cd unixbench-5.1.2 && sed -i "s/^GRAPHIC_TESTS = defined/#GRAPHIC_TESTS = defined/" ./Makefile |
3、测试单核性能
测试CPU单核整型能力,在终端输入命令,并回车确认执行:
1 | ./Run -c 1 dhry2reg |
4、测试多核性能
测试CPU多核整型能力,在终端输入命令,并回车确认执行:
1 | ./Run dhry2reg |