以前见客户经常会碰到一些客户问我们你们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带宽的测试的更多相关文章
-
Windows Azure HandBook (6) Azure带宽与Azure Blob云存储
<Windows Azure Platform 系列文章目录> 在笔者这几年Azure售前工作中,经常会遇到客户提同样的问题:Azure 虚拟机的带宽是多少?Azure提供独享带宽吗?这个 ...
-
Azure 带宽
Azure带宽与Azure Blob云存储 http://www.cnblogs.com/threestone/p/4497625.html
-
Windows Azure HandBook (10) 测试本地网络到微软云的延迟
<Windows Azure Platform 系列文章目录> 之前遇到一些微软云的客户,在使用海外数据中心的时候,需要评估本地网络到微软云网络的延迟. 我们建议部署到微软云上的服务,离最 ...
-
Azure Devops/TFS测试管理(下)
紧接着 上篇 经过上篇折腾,我们已经有了: ①手工测试的流程规范 ②测试用例的管理 对于开发出身的我,我觉得一个项目上线流程应该主要瓶颈只能是开发本身,因为我认为最复杂过程应该就是开发,而肯定不能是测 ...
-
在jmeter测试中模拟不同的带宽环境
怎么去测试在手机app中和在web的不同的连接速度对服务器的影响呢? 大部分情况下,手机终端用户通过移动网络访问网站.所以在不同的网络连接数据下,我们的网站或程序可以同时处理多少链接?今天,这篇文件就 ...
-
linux测试带宽命令,Linux服务器网络带宽测试iperf
linux测试带宽命令,Linux服务器网络带宽测试iperf必须先运行iperf serveriperf -s -i 2客户端iperf -c 服务端IP地址 iperf原理解析 iperf工具可以 ...
-
测试linux服务器带宽
测试准备 1. 计划考量参数 TCP上传数据带宽 TCP下载数据带宽 UDP上传带宽 UDP下载带宽 多并发支持 稳定性 Tcp通讯网络延迟(小包:32.中包1k.大包1M) UDP通讯网络延迟(小包 ...
-
使用 Visual Studio 开发、测试和部署 Azure Functions(二)测试,部署
1,引言 上一篇介绍了使用使用 Visual Studio 开发 "Azure Functions" 函数,此篇介绍 “Azure Functions” 的测试以及直接从 Vist ...
-
集群搭建完成简要测试集群(性能)带宽与IOPS
集群搭建好之后网络,raid卡策略,磁盘都会影响集群的性能.为了避免因上述问题使得集群的性能受到影响,我们依次进行测试,最后得到基本的集群性能. 网络 首先是网络,ceph集群一大堆让人摸不着头脑的问 ...
随机推荐
-
net面试 ASP.NET页面传值的各种方法和分析 (copy)
Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题 ...
-
UVa12092 Paint the Roads(最小费用最大流)
题目大概说一个n个点m条带权有向边的图,要给边染色,染色的边形成若干个回路且每个点都恰好属于其中k个回路.问最少要染多少边权和的路. 一个回路里面各个点的入度=出度=1,那么可以猜想知道各个点如果都恰 ...
-
栈的C++实现(数组)——创建-push-pop-top-清空栈-处理栈
今天学习了利用数组方式的栈的C++实现,这种方式跟指针实现有很多不一样的地方: 栈的指针实现,栈的创建申请头结点,push需要申请新的结点,pop释放结点,这些结点都放在第一个位置,top时,S-&g ...
-
图片按钮来代替文件上传控件(Freemaker,JQuery,HTML,CSS,JavaScript)
CSS样式: <style type="text/css"> .fileInputContainer{ height:70px; width:95px; positio ...
-
关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...
-
Label设置行间距--b
内容摘要 UILabel显示多行文本 UILabel设置行间距 解决单行文本 & 多行文本显示的问题 场景描述 众所周知,UILabel显示多行的话,默认行间距为0,但实际开发中,如果显示多行 ...
-
取消svn版本控制
删除项目中的版本控制,即删除项目文件夹下的所有.svn文件夹(在做项目的时候,有时候想把项目拷回去看看,但是文件太大了,而且压缩起来很慢.这主要是因为在项目中有大量的.svn文件夹.所以才想把.svn ...
-
错误代码: 1045 Access denied for user &#39;skyusers&#39;@&#39;%&#39; (using password: YES)
1. 错误描述 GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "."; 1 queries exe ...
-
『Sklearn』数据划分方法
原理介绍 K折交叉验证: KFold,GroupKFold,StratifiedKFold, 留一法: LeaveOneGroupOut,LeavePGroupsOut,LeaveOneOut,Lea ...
-
[BZOJ5302][HAOI2018]奇怪的背包(DP)
由裴蜀定理得,一个集合S能得到w当且仅当gcd(S+{P})|w. 于是f[i][j]表示前i个物品gcd为j的方案数,发现gcd一定是P的因数,故总复杂度$O(n\sqrt{P}\log P)$(需 ...