如何通过网络应用性能对SDN及虚拟化网络产品进行评估

嘉宾简介:

董培欣:现任ZD高级策划经理,2002年起在赛迪评测开始网络及网络安全产品测试工作。曾主持编写《交换机产品测试规范》和《路由器产品测试规范》并成功申请到了相关的国家测试实验室资质。

2007年-2015年独自一人在网络世界评测实验室进网络及网络安全产品测试。曾编写《网络世界媒体推广确认测试标准》、并在《网络世界》杂志及网界网上发表过多篇网络及网络安全产品评测及产品分析文章。

正文

网络应用性能的重要性

这个我想先举一个我身边刚刚发生的小例子:

6月份孩子小升初,升学派位的结果在网站上进行公布。

晚上8点公布结果,8点10分我进网站去查询。但是在用户登录时,始终登录不上去。

总是提示我“你没有任何功能项的操作权限,请联系管理员配置你的权限”。

这个问题,我想大家都清楚,首页可以登录、背景图片可以显示,应该不是DNS和网络带宽的问题,想必是网站的用户登录模块挂掉了。

怎么挂掉的,应该是用户登录模块同时登录连接数过多,导致缓存溢出。

导致的影响是什么,可以看一下截图

我上网站上查了一下,我所在的区去年小升初是4000多个孩子,今年会有增长,但应该也不会超过6000,就算孩子父母一个用手机,一个用电脑同时进行查询,并发用户数最多也就在1万上下。(还有些准8点就去查已经查到的,我就懒了那么一会……)

做系统的技术烂不烂,我们先不去追究,通过这个案例我想说的是,如果在系统上线之前进行过网络应用性能测试,这个问题全完可以提前避免。

无非是统计一下今年有多少生源,从而确定一个最大并发访问量,再查看一下反回数据的文件大小,比上教委网站的带宽,就可以知道新建连接的速
率,HTTP新建和并发测试又是在网络应用性能里非常成熟的测试方法,用它来对系统提前进行一下压力测试,肯定可以提前发现并解决问题。

而且,网络应用性能测试还有利于明确问题责任划分,是网络的问题还是网站的问题可以做到一目了然。(当相互推诿的时候,网络的一方如果可以拿出一个
应用性能报告,说明可以处理多少、多少的应用连接、可以保持多少连接的正常访问,那另外一方就啥话也别说,只能乖乖的去改代码……)

我在这里举这个例子,实际上是想把这个问题引申一下。也就是说,当前的SDN和NFV产品,同样可以利用网络应用性能的方式对其功能模块进行评估。

下面我们就来看一下,网络应用性能可以对什么产品或功能进行评测

网络应用性能可以对什么产品或功能进行评测

网络应用测试——简单又不简单

说网络应用性能测试简单,是因为就那么几个测试指标,测试方法也比较固定。

说网络应用测试不简单,是因为他可以对当前近乎所有的网络功能进行评估,并可以做出最真实的,接近实际应用的分析。

我从04年左右开始接触网络应用性能测试,从服务器测到负载均衡,乃至于下一代防火墙,都可以通过网络应用测试对其进行最直观的分析。

那时候,曾经夸下海口,只要有网络端口,不管什么网络设备,我都可以进行测试。

现在的情况是,在虚拟化的场景下,从理论上讲,没有物理的网络端口,也可以通过虚拟端口对云计算系统进行分析。

为什么说是理论上,主要是现在虚拟系统的坑实在是太多了,真不够我这个小身板去填的。

然后我又在想这个坑为什么要我去填?(关键是懒……)我以前测试华三、思科的产品之前,难道还要先考一个他们的证书,学一下怎么去编他们的代码?那我也就别干别的了。

前段时间,也曾经试着搭建过一些虚拟化系统,并得到了一些测试数据,但突然发现这么做,除了装装B,可以和别人吹一下我也做虚拟化了,其它并没有什
么卵用。关键是这样的测试没有一点实际的代表意义。怎么才可以做些有意义的东西出来,在结尾的时候我会将我的想法写出来,供大家参考。

好了,牢骚就先发这么多,现在转入正题,如何通过网络用性能对SDN、NFV产品进行评估

虚拟网络端口

首先看一下网络虚拟端口

很明显,这只是一个链路层的东西,也要用应用层测试指标去衡量吗?

我想说的是,这里有一些误解,大家一提到网络应用,首先反映到的就是七层的各种服务。

实际上,链路层上的数据转发,本身也是一种网络应用,不但链路层,网络层,传输层乃至于二到七层也都一样。

链路层上的转发、延时、系统资源占用的分析,一样也是属于网络应用的一种。链路层性能的测试方法,有很多大牛都公布过,我也就不在这里现丑了。

在这里想多提一句的是CPU占用,虚拟网卡也是个程序,程序干活要消耗CPU、内存等系统资源。

这里就有一个资源分配的问题,给虚拟网卡分配的资源多了转发性能自然会好,但服务器就干不了别的,买个服务器就为了当交换机使虽然是SDN的本意,但整个数据中心服务器全干这个,那就是笑话了。

现在Intel到是出了DPDK但虚拟端口的流量能否用DPDK进行卸载,我还没有见到成功的案例,9号下午实战团活动,倒是有DPDK的介绍,可我下午正好有事,给错过了,十分的遗憾。

但是DPDK必竟还只是软解压,无论怎么节省,还是要消耗CPU资源,据说Mellanox的网卡可以不占用CPU,完全通过网卡对数据包转发进行卸载,但还没碰到实际的产品,有机会的话,可以去试着去祸害一下。

但即便如此Mellanox也不可以过分大意,如果Intel下一步将网卡芯片直接集成到CPU内部,那Mellanox的“硬解压”优势就会被极大削弱。现在的至强D应该就是Intel的一次尝试。

不过现在看至强D还是有些不上不下,将它当处理芯片吧,计算能力比较弱,当转发芯片吧成本又太高,就算是在白盒交换上做个控制芯片,可能都有人会嫌
它贵,只有一些财大气粗的用户现在在用,但CPU与网卡芯片融合肯定是未来技术发展的趋势,说不定那天AMD先它鼓捣出来了呢。

虚拟机

谈完虚拟化网络端口,下面讲一下虚机

通常评估虚机的性能,都是用分配了多少个核,多高主频,多大内存。但虚机可以进行多少应用的处理,没有一个统一的评估方法。而网络应用处理性能,正是网络应用性能测试的强项。

在很早以前的服务器性能测试中,我就开始利用http的连接处理能力(HTTP新建)对服务器CPU处理性能进行测试,取得了很直观的测试效果。

有兴趣的同学可以去找找八九年前赛迪评测出的Intel与AMD CPU性能对比报告,在那里应该有这方面的测试结果。

同样,利用http的连接保持能力测试(HTTP并发),可以对内存性能进行分析。

再结合HTTP的传输流量,基本上可以将服务器的整体应用处理性能进行全向的分析。

后来这些指标更多的用在了网络四七层设备、负载均衡、流量监控以及下一代防火墙等产品的测试之中,服务器的网络应用性能测试反而没有得到很好的普及
推广(当时对服务器的测试方法还有很多,而我的关注点又转到了网络和网络安全设备上,所以服务器的网络应用性能测试被逐渐淡化了)。

我想,对虚拟机的网络应用性能测试,可以算的上是服务器网络应用测试方法的一种回归。当用户可以了解到虚机对一个最简HTTP连接的处理性能之后,

对自身的网页加以一个估算,就可以大至计算出,自身的网络应用需要多高的计算能力,需要什么样的系统资源配置,以及在什么状态下,可能会出现问题,届时应
当如何进行处理。

有条件的用户还可以直接利用网络应用测试的方法,直接对自身的网络应用进行测试,那将会得到更加直观的测试结果,有利用网络相关问题的提前发现,并在事前加以解决。也就避免了开头我举例问题的发生。

控制器

说完虚机,最后想说一下控制器。

控制器看上去功能众多结构复杂,实际上在我看来,就是一张大表,上面记录着所有的Mac、IP、端口、服务、VLAN(VXLAN)ID等信息。

按照Mac管理时它是控制器,按IP控制时,它是路由(现在时兴的说法好像是SDWAN),按端口可以当防火墙,按服务可以做应用分析,按VLAN可以做管理……。

总之这个表做的越大,对数据流分析的越深,做的功能就会越多,管理的规模就会越大。

这也不是什么新技术,下一代防火墙上早就是这么干的了,现在NGFW在网络应用处理性能上也早不存在什么瓶颈。

不知为什么到SDN控制器这里为什么会变得这么难?

看来是以前忽略了一个兼容性的问题——跨平台的通用型应用编程语言(如JAVA)和及面向对象语言(如Python)它们的执行效率问题。编程语言本身效率不高,想让程序具有高效率就是沙地上建塔了。

未来云计算底层应用应该如何为上层兼容性提供支持,是云计算厂商需要着重说明的一件事情,否则云计算就只是中看不中用了。

用什么指标测试是车轱辘话,也没必要再多说了吧?

至于高可用(HA 双活)、负载均衡、安全等NFV功能,利用网络应用性能测试的方法也是大同小异。

总之,网络应用性能测试的适用范围非常广泛,并可以非常直观的对产品应用能力进行评估。我也希望今后有更多基于网络应用性能的测试结果可以展现出来。

如何进行网络应用评估

按道理网络应用性能的介绍到此就应该结束了,但我还想多说一下,如何进行网络应用性能评估。

现在对虚拟系统测试的方法有很多,在Linux下有Iperf、NetPerf、ab等免费工具可以直接使用,也有一些测试仪表厂商为虚拟化产品测试,推出了专用的测试软件。

这些免费工具针对一两个虚机进行测试时,使用起来确实非常简便。但是很难用于大规模测试场景之中。

专用测试软件可以进行大规模网络应用测试,并且测试项目和测试结果的精确度也不是免费工具可以比拟的。

我个人对此的看法是,有多大的碗,盛多少的饭。不管是用免费工具也好,收费仪表也罢,厂商可以组织多大规模的测试,就可以出多大规模的产品。

就像我刚开始做网络应用性能测试时一样,当时国内本身就没有几台应用测试仪表,厂商不得不送产品到我实验室里来,边测试,边改bug。现如今,厂商巴不得我到他们那里去,不但是测产品,更要让别人知道他们的产品测试实力。

这就是一种本质性的改变。在这种变革之下,我自然也不能总抱着产品测试不放。现在我来到ZD,做宣传策划,也正是出于这个原因。今后会通过至顶网这个优质的企业媒体宣传平台,将更多厂商在产品技术、质量管控乃至于技术服务方面的企业优势更好的宣传出来。

测试只是手段,不是目的,通过测试,通过可以直接分析的性能指标,了解功能,了解产品,并知道可以为用户解决什么样的实际问题,这才是厂商最需要做到的。我在今后也会尽全力协助有这方面需求的厂商,去做大做好。

Q&A

Q1:看完之后我还是不知道具体的测试手段,比如iperf的参数,在什么样的场景下改如何设置?
A1:iperf参数网上百度一下就好,我一开始也一样不了解,也是百度着一点点学的。

Q2:网络安全产品测试的性能指标可能和一般的网络产品的不太一样,我想了解一下如果是防火墙产品的话,主要的性能指标是什么?有什么具体的解决方案吗?
A2:性能指标,二三层转发时延、四七层新建、并发,但一定要注意把这些指标带到具体功能里进行测试。

Q3:您测试Http主要用Spirent和ixia的产品吧?
A3:对,这两家的产品都用过

Q4:请教,就产品而言,控制器该如何测量性能呢?有哪些指标呢?
A4:我建议在传输层通过TCP建立速率来进行重点测试,这是控制器的弱项,也是十分重要的考核指标。

Q5:是不是还应该考虑到防护攻击和病毒时候的23转发时延和47的新建以及并发?
A5:在对具体功能时,要具体的去看,是哪层的设备,是哪层的指标

Q6:请问TCP建立速率主要取决于哪些因素?
A6:新建连接考查的是产品的CPU处理能力,你产品做的好,在测新建时,CPU的占用就会少

Q7:这是产品性能的评测,对于用户体验一般是如何评测?
A7:应用性能测试直接反映的就是用户体验,新建不足,用户的连接就建立不起来,等待时间就会加长,并发不够,就有可能令服务器瘫痪,这些都是用户在实际体验时可以真实遇到问题。

Q8:那您现在主要用什么工具来测试每秒新建和最大并发呢?除了Spirent和ixia还有别的选择吗?
A8:我倾向于用avalanche,现在专用仪表,就他们两家,ixload在处理一些脚本时我觉得不是很自由

Q9:虚拟化解决方案的测试有一套系统的指标吗?
A9:我以前总结了一些,但时间比较长了,要找找,不过我倾向于具体功能具体分析,应用不同,评估的尺度也不一样。

Q10:除了并发,对于产品性能还有哪些地方测试不足会影响用户体验
A10:一般来讲,新建测CPU、并发内存,按道理流量测网络吞吐,但在七层测试中流量测试时基本跑的都是大包,吞吐性能不能很好的反映出来,所以才需要在二三层再测一下

Q11:SR-IOV如何测试呢
A11:存储我还要简单说一下,应用性能有个局限,就是对存储性能没有什么好的测试办法,因为应用请求在服务器端基本会被内存给缓存住了,所以存储的性能很难测试到。

Q12:在网络安全测试方面,是用的哪个流量发生器?
A12:avalanche、ixload、breaking point

Q13:对于tcp/http连接测试能否把这些测试工具分几个级别介绍一下,比如10W并发有哪些工具,100W并发有哪些?
A13:纯软件的用an即可,10万内可以,100W的可以集群吧,或者就上avalanche

Q14:能再略微详细说说负载均衡应用的压力测试吗?
A14:负载均衡看是四层还是七层负载,指标都是新建和并发,http://test.cnw.com.cn/test-report/htm2011/20110708_228729.shtml 这个是以前的负载均衡测试报告,可以参考下

Q15:如何检测某一网络安全产品对DDoS的防御能力?
A15:http://test.cnw.com.cn/test-report/htm2011/20110708_228729.shtml 这个以参考下

Q16:为什么路由器的测试只是一些压力的测试用例呢?
A16:也可以测试路由表的深度,在测试仪表上有相关的设置的,我所说的那几个只是基本测试指标,对不同功能,在应用上海需要进行多种不同设置,基本指标只是性能的一个参考。像一些网络厂商,这样的测试项,会有成百上千种之多,这里没办法一一列举的。

Q17:网络流量吞吐需要关注吗?
A17:网络流量吞吐当然要关注,在不同包长下的吞吐,CPU的占用是不同的,一般来讲512Byet以上吞吐基本不丢包就可以满足正常应用,但还要再重复一下,要看具体应用!具体应用!!具体应用!!!应用不同,考核的指标也要随着改变。

原文发布时间为: 2016年7月21日

本文作者:SDNLAB

时间: 2025-01-01 08:51:43

如何通过网络应用性能对SDN及虚拟化网络产品进行评估的相关文章

SDN解读:网络虚拟化和网络编排

SDN的一个重要目标是实现可以动态分配的灵活网络.虽然SDN的本质是实现集中控制和网络可编程性,但网络虚拟化和网络编排也 同样重要.为什么需要网络编排?通过SDN,网络可以通过一种编排好的方式进行分配,类似于服务器.存储和应用程序等其它IT组件.其中最重要的影响是软件定义网络可以实现自动化.自动化可以快速地分配服务,同时减少出现人为错误的机率.新创公司Anuta Networks和Alcatel-Lucent的Nuage Networks公司都已经推出了SDN编排工具.这些工具的目标用户是那些需

《新一代SDN——VMware NSX 网络原理与实践》——2.3 各厂商的网络虚拟化解决方案

2.3 各厂商的网络虚拟化解决方案 介绍完几种Overlay技术之后,我们就需要对比一下几大厂商基于Overlay技术的网络虚拟化解决方案了.各家厂商的解决方案各有千秋,各有利弊.在这里介绍它们的网络虚拟化解决方案,目的是让读者对整个行业的趋势有一个了解,也让读者了解VMware NSX网络虚拟化解决方案在行业中所处的地位. 2.3.1 Cisco ACI解决方案 Cisco ACI是Cisco公司提出的SDN和网络虚拟化解决方案,它的主要组件有应用策略基础设施控制器(APIC)和ACI交换矩阵

《新一代SDN——VMware NSX 网络原理与实践》——1.3 网络虚拟化的兴起

1.3 网络虚拟化的兴起 前文已经提到,网络虚拟化是云计算和SDN发展到一定阶段的产物,因此可以认为网络虚拟化是新一代的SDN.而云计算又是随着服务器虚拟化技术飞速发展而诞生的.因此,我们从介绍服务器虚拟化技术开始,引入网络虚拟化技术. 早期的网络虚拟化与现在的网络虚拟化在架构上有很多的不同,这会在本节中进行介绍,以使得读者在后续章节更好地理解VMware NSX网络虚拟化技术. 1.3.1 服务器虚拟化的日趋成熟近年来,服务器虚拟化技术被炒得火热,也日趋成熟.它是伴随着x86计算机性能飞速发展

服务器采购三要素 性能、功耗与虚拟化

今天的服务器市场,无论是从技术层面 来看,还是从应用层面来看,正在面临越来越多的挑战,当然也为芯片厂商和服务器厂商带来了更多的机会. 从应用方面来看,一方面,许多应用对服务器性能的要求越来越高,象新兴的互联网应用.视频计算.高性能计算等,对计算性能.存储性能.I/O吞吐能力都 提出了更高的要求:其次,服务器的利用率偏低也已是一个不可 忽视的现实问题,据统计,平均服务器的使用率只有15%左右,这种偏低的利用率不仅造 成了服务器资源的无端浪费,而且对数据中心的空间.成本.管理也带来了许多 新的问题:

ODL:SDN是未来网络的关键

目前我们所处的时代,网络已经渗透到我们生活的方方面面.用智能手机与人交流.智能家居的使用,甚至无人驾驶汽车的行驶,都离不开网络.但是网络绝大部分的构架,服务提供,运维管理使用的基本技术已经不能满足需要,所有人都意识到网络需要演进,却没有明显的路线图. 有一个项目就试图把设备供应商.运营商,以及终端用户.大研究和学术机构还有众多初创公司联合起来解决问题,建立开源的SDN控制器.它成功了!这就是OpenDaylight(ODL). ODL是什么 ODL项目是Linux基金会旗下的一个开源合作项目,是

利用SDN扩展虚拟网络

  SDN可以将你带到现有网络没有到过的地方,但你可能要重新考虑转发表. SDN被认为是企业实现完全虚拟化网络的主要途径,乃至实现完全虚拟数据中心的主要方式. 所有这些虚拟化的主要好处之一是规模.不受硬件限制,SDN环境将能够根据用户的变化而变化,这带来了随时随地实现数据连接的时代. 然而,如果是这样的话,为什么还有这么多围绕虚拟网络平台的可扩展性限制的问题出现呢? 转发表限制 事实证明,虽然控制平面和转发平面的分离可以带来很多好处,但虚拟网络仍然受到转发表能力的限制,虚拟网需要转发表来记录推动

《新一代SDN——VMware NSX 网络原理与实践》——1.2 认识SDN

1.2 认识SDN 介绍完为什么需要SDN和SDN的起源后,是时候介绍SDN到底是什么了.理解SDN架构,对于理解VMware NSX网络虚拟化解决方案的三个平面架构以及其逻辑网络.物理网络解耦的设计,是非常重要的--SDN的核心思想是控制平面与转发平面的分离,这与NSX中管理平面.控制平面和数据平面的设计如出一辙. SDN其实直到现在也没有清晰的定义,但是其核心理念已逐渐被人们接受.本章将下来会讨论SDN的理念.架构,以及它如何面对当前的IT难题. 1.2.1 SDN是什么 SDN是Softw

国内虚拟运营商借SDN布局5G网络

过去几年里,软件定义网络(Software Defined Network,简称SDN)成为网络技术领域的热门话题,引起了业界的关注.SDN的核心特点是抽象出网络操作系统平台,屏蔽底层网络设备物理细节差异,并向上层提供统一的管理和编程接口,以网络操作系统平台为基础开发出应用程序,通过软件来定义网络拓扑.资源分配.处理机制等.SDN的发展大致可分为广义和狭义两种,广义SDN泛指向上层应用开放资源接口,可实现软件编程控制的各类基础网络架构,狭义SDN则专指符合ONF组织定义的基于标准Openflow

SDN/NFV:定义网络未来发展的两个不同面

软件定义网络(SDN)的目标是让网络和存储以及虚拟服务器那样动态和敏捷.这种敏捷性是通过在在网络硬件上的软件层实现的,这个软件层可以让管理员为网络传输路由制定业务规则,然后将这些规则运用到网络路由器和其他硬件上,这样就不需要手动配置硬件了. 软件定义网络对于大多数企业机构来说仍然是一个很新的概念.企业喜欢软件定义网络带给网络的虚拟化潜力,但是来自多家厂商的不同硬件必须全部能够与软件定义网络软件层协作.这使得软件定义网络的部署要比虚拟服务器或者存储的部署更加复杂. 企业机构在部署软件定义网络的时候