以前见客户经常会碰到一些客户问我们你们Azure的带宽是多少,每次回答这个问题我们只能含糊地告诉客户一个大概数值,这样就会留给客户一个认为我们很不专业的印象,其实站在客户的角度我们也能理解,连这样的一个问题你都不能准确回答,我怎么能相信你能帮我运维,所以我与我同事抽空实测了一下,在这里我重点阐述如何进行测试,而不是对测试结果进行分析!!!

测试条件,Azure中国区域的账号

在测试之前,我想和读者稍微讲解一下本次的测试环境以及本次测试所用到的工具,本次的测试工具为iperf,具体版本为iperf3.1.3

第一步,登陆账号,创建虚拟机,有两种创建方式,第一种是通过portal创建,另一种是通过powershell创建,创建虚拟机的步骤这里就不再演示,如果有不会的读者可以翻看我前面的博文进行参考,在本次poc环境里,我们以一台东部区域的D4虚拟机作为server端,4台北部A1作为client端,OS都为centos7.2,架构图如下;

在这里笔者要说一下,之所以要将server端和client端放在不同的地域,是因为如果server端和client端都在同一个区域的话,两端的流量传输是不能出数据中心的,因为数据中心的边缘网关收到数据包,会拆包查看destination IP,如果发现该IP地址就在该数据中心内,边缘网关会直接将数据包丢给该IP地址的虚拟机,所以数据包不能出数据中心,其实大多数的网络带宽的瓶颈都在公网上,而不是内网,所以笔者的建议是如果有条件最好用本地服务器与Azure数据中心上的虚拟机做测试,由于笔者缺少本地服务器,也比较懒得去搭建环境,这里就在北部建了四台虚拟机作为client,数据包直接在连接两个数据中心的裸光纤进行传输,即便如此,iperf也不能将宽带吃满,所以并不能测出准确的结果,如果想测吃满裸光纤可以用Azcopy来进行测试,所以这里更偏向于方法论的展示,实际意义不大。

按照架构图建立好虚拟网络与虚拟机,结果如下

接下来的工作就是安装iperf,我们首先通过SSH远程登陆到所有虚拟机,在安装iperf之前需要确保虚拟机OS都已经安装好make和gcc,由于Azure所提过的OS都是base版,所以大多数都需要我们自己安装

在于server端,我们通过SSH登陆以后

输入sudo yum install gcc  看到如下结果

此时server端的gcc就安装成功了,接下来安装make

输入sudo yum install make,结果如下

表明make已经存在了,不必再去安装

client端的操作也是一样,这里就不再一一展示

接下来的工作就是下载并解压iperf源码包

在server端,输入如下命令

$sudo cd /tmp
$sudo wget http://downloads.es.net/pub/iperf/iperf-3-current.tar.gz
$sudo tar zxvf iperf--current.tar.gz

完成以上步骤会在/tmp目录下看到如下结果

接下来安装iperf

$sudo cd iperf-3.1.4/
$sudo ./configure
$sudo make
$sudo make install

安装成功后,iperf被安装在/usr/local/bin目录下,进入该目录可以看到如下结果

如果iperf运行报以下错误

iperf3: error while loading shared libraries: libiperf.so.: cannot open shared object file: No such file or directory

输入Idconfig即可解决

client端的安装方法同server端,这里就不再详细介绍

这样,所有的虚拟机的iperf都安装好了,有人不禁会问,这样就好了嘛,当然不是,还有非常重要的一步,就是修改访问规则,因为两端有防火墙规则,必须修改完以后才能使用iperf进行测试,测试的时候我们要指定iperf server端监听的端口,这里设定为TCP-5001,在防火墙上就要开启TCP-5001端口相应的访问规则,在ASM中,我们需要配置终结点,在ARM中,需要配置NSG,由于本次poc环境都是在ARM中部署的,所以我们需要修改NSG,其实笔者的建议是最好都使用ARM,毕竟ARM多了很多功能,有些功能甚至已经不需要在powershell上完成,直接可以在ARM中完成。

具体修改规则如下

在server端的NSG添加如下规则

接下来就可以开始测试了,首先我们在server端输入如下命令来监听5001端口,每两秒输出一次结果;

$iperf3 -s -p 5001 -i 2 

看到如下结果,表示iperf运行正常

接下来就等待client端开始测试了,在client端输入如下命令

$iperf3 -c 139.219.229.18 -P 4 -t 30 -i 2 -p 5001

这条命令的意思就是client端并发4个数据流,测试时间为30s,每2s输出一次结果

首先我们看client vm1,截图如下

serverD4端截图结果如下

通过以上截图,我们可以看到带宽在120Mb左右,在这里笔者要提醒一下,四个client端只能轮流测试,也就是说当client vm1在测试时,其它client端是不能进行测试的,即使输入命令也不能正常进行测试,因为server端口处于busy状态,会出现如下截图

在这里,其它client端的截图就不再展示,因为测试下来的带宽相对保持稳定,所以就不再展示截图,最后想提醒大家一下,因为该测试会产生流量的费用,所以在测试之前需要做好准备

关于Azure带宽的测试的更多相关文章

  1. Windows Azure HandBook (6) Azure带宽与Azure Blob云存储

    <Windows Azure Platform 系列文章目录> 在笔者这几年Azure售前工作中,经常会遇到客户提同样的问题:Azure 虚拟机的带宽是多少?Azure提供独享带宽吗?这个 ...

  2. Azure 带宽

    Azure带宽与Azure Blob云存储 http://www.cnblogs.com/threestone/p/4497625.html

  3. Windows Azure HandBook (10) 测试本地网络到微软云的延迟

    <Windows Azure Platform 系列文章目录> 之前遇到一些微软云的客户,在使用海外数据中心的时候,需要评估本地网络到微软云网络的延迟. 我们建议部署到微软云上的服务,离最 ...

  4. Azure Devops/TFS测试管理(下)

    紧接着 上篇 经过上篇折腾,我们已经有了: ①手工测试的流程规范 ②测试用例的管理 对于开发出身的我,我觉得一个项目上线流程应该主要瓶颈只能是开发本身,因为我认为最复杂过程应该就是开发,而肯定不能是测 ...

  5. 在jmeter测试中模拟不同的带宽环境

    怎么去测试在手机app中和在web的不同的连接速度对服务器的影响呢? 大部分情况下,手机终端用户通过移动网络访问网站.所以在不同的网络连接数据下,我们的网站或程序可以同时处理多少链接?今天,这篇文件就 ...

  6. linux测试带宽命令,Linux服务器网络带宽测试iperf

    linux测试带宽命令,Linux服务器网络带宽测试iperf必须先运行iperf serveriperf -s -i 2客户端iperf -c 服务端IP地址 iperf原理解析 iperf工具可以 ...

  7. 测试linux服务器带宽

    测试准备 1. 计划考量参数 TCP上传数据带宽 TCP下载数据带宽 UDP上传带宽 UDP下载带宽 多并发支持 稳定性 Tcp通讯网络延迟(小包:32.中包1k.大包1M) UDP通讯网络延迟(小包 ...

  8. 使用 Visual Studio 开发、测试和部署 Azure Functions(二)测试,部署

    1,引言 上一篇介绍了使用使用 Visual Studio 开发 "Azure Functions" 函数,此篇介绍 “Azure Functions” 的测试以及直接从 Vist ...

  9. 集群搭建完成简要测试集群(性能)带宽与IOPS

    集群搭建好之后网络,raid卡策略,磁盘都会影响集群的性能.为了避免因上述问题使得集群的性能受到影响,我们依次进行测试,最后得到基本的集群性能. 网络 首先是网络,ceph集群一大堆让人摸不着头脑的问 ...

随机推荐

  1. 转载:SqlServer数据库性能优化详解

    本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...

  2. Shell(C++实现,CodeBlocks+GCC编译)

    程序效果: 只实现了login .cd .ls .cat 四个命令.而且只能在 Windows 下运行. 代码: //main.cpp 1 #include <iostream> #inc ...

  3. Url和Uri的区别

    URL: URL是Uniform Resoure Locator(统一资源定位器)的缩写.就是WWW页的地址. 其URL地址格式排列为:scheme://host:Port/path其中 ·Inter ...

  4. NOIP2013pj车站分级[拓扑排序]

    题目描述 一条单向的铁路线上,依次有编号为 1, 2, …, n 的 n 个火车站.每个火车站都有一个级 别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车 次停靠了 ...

  5. Struts2文件上传和文件下载

    一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传 <h1>单个文件上传</h1> <s:form action="uplo ...

  6. Hibernate中的一对一关联

    Hibernate提供了两种一对一映射关联关系的方式: 1)按照外键映射 2)按照主键映射 下面以员工账号表和员工档案表(员工账号和档案表之间是一对一的关系)为例,介绍这两种映射关系,并使用这两种 映 ...

  7. 【笔记3】用pandas实现矩阵数据格式的推荐算法 (基于用户的协同)

    原书作者使用字典dict实现推荐算法,并且惊叹于18行代码实现了向量的余弦夹角公式. 我用pandas实现相同的公式只要3行. 特别说明:本篇笔记是针对矩阵数据,下篇笔记是针对条目数据. ''' 基于 ...

  8. JS正则表达式基本概念

    1.正则表达式(Regular Expression) 在JS里是RegExp 两种字义方式 1. var patt1=new RegExp("e"); 2. var patt1 ...

  9. 微信快速开发框架(八)-- V2.3--增加语音识别及网页获取用户信息,代码已更新至Github

    不知不觉,版本以每周更新一次的脚步进行着,接下来应该是重构我的代码及框架的结构,有朋友反应代码有点乱,确实如此,当时写的时候只是按照订阅号来写的,后来才慢慢增加到支持API接口.目前还在开发第三方微信 ...

  10. 读书笔记---PMBOK第五版官方中文版

    以下是为了准备PMP考试时学习<PMBOK第五版官方中文版>这本书的笔记和摘要,目的是为了以后可以快速的抓住本书的核心重点复习. 引论 PMPOK的目的 收录了项目管理知识体系中被普遍认可 ...