返回首页
当前位置: 主页 > 其他教程 > 电脑教程 >

基于PhantomJS的校园网质量分析及优化

时间:2018-11-22 22:01来源:Office教程学习网 www.office68.com编辑:麦田守望者

对于互联网建设来说,提升终端用户的访问质量是重要目标。根据国际通用的宽带网速衡量标准,反映宽带网络速率及接入质量的指标主要有两种:

  一是网络接入速率,即运营商与用户合同约定的,从用户终端到运营商网络接入设备的可使用的最高速率,比如我们通常所说的运营商提供的20Mbps、50Mbps宽带,主要反映的是宽带网络运营企业为用户提供的网络能力。

  二是用户实际体验速率,是指用户从互联网上下载文件,访问互联网视频、购物等各类应用时实际感受到的速率,主要反映了用户访问网络应用“端到端”的实际体验。

  包括中间网络、国际互联网出入口带宽、被访问网站的服务能力、网络忙闲时、用户上网行为及用户使用的智能终端等在内的多种因素会影响用户实际体验速率。

  对于高校校园网络,在访问外网时同样存在着提升用户体验的需求。如何合理利用现有资源,最大限度地为广大师生提供优良的上网体验,是目前迫切需要解决的问题。目前上海交通大学校园网出口除教育网外,还存在多家运营商线路,其带宽和利用率各不相同。为了提升学校校园网内部访问外网质量,基于师生通过校园网访问的最常用网站,我们利用 PhantomJS 自动测试脚本做了大量访问测试,通过分析收集到的数据,找到网络延时过长的原因,并针对性的实施改进措施,减少校园网访问外网的延时,提升广大师生访问外网的体验。

  测试方法

  测试脚本采用 Phantom JS 编写。Phantom JS 是一个基于WebKit的服务器端JavaScript API。它全面支持Web而无需浏览器支持,原生支持各种Web标准:DOM处理,CSS选择器,JSON,Canvas,和SVG。它非常适合于页面自动化,网络监测,网页截屏,以及无界面测试等。本次测试脚本的主要部分如下:

  var page = require('webpage').create(), system = require('system'),
  t, address;
  t = Date.now();
  address = system.args[1]; page.open(address, function(status) {
  if (status !== 'success') { console.log('-1');
  } else {
  t = Date.now() - t; console.log(t);
  }
  phantom.exit();
  });

  首先选定待测试目标网站。我们以校园网内用户经常访问的TOP1000网址作为测试对象,比如TOP5网址如下: 203.107.1.1,msg.71.am,hq.sinajs.cn,wx.qlogo.cn,hm.baidu.com。这些都是网页的子URL,通常是网页的一个框架或者一个子页面等。对他们的访问所需时间比完整的页面要少,因而能更加准确地反映网络访问延时,便于作为分析研究的数据源。

  测试分成两个部分:有线网和无线网来完成。有线网机器配置成正常的用户IP地址和DNS,利用上述测试脚本访问TOP1000网址。上交大无线网出口路由分为两个部分:教育网和电信网,所以无线网测试分成两部分来完成。

  具体的测试方法是在每天上网高峰期上午八时,中午十二时,晚上六时,依次访问上述排名前一千位的网站,连续测试十天以上。在测试期间遇到过一些异常问题,包括:测试脚本无反应,等待时间太长;访问时间不规则,时长时短等。针对这些异常,采用的方法包括:如果一分钟还没有返回,则认为该网站不通,测试结果无效,此次对该地址的测试直接结束;连续测试十次,首先去掉无效的结果,一次两次有效结果直接计算,三次有效以上再去掉最大和最小值,剩下的有效值取平均值;如果开始连续三次都timeout,则不继续测试该站点,以免浪费时间。通过这些措施,保证每次测试能够在2小时左右的可控制时间内有效完成,并符合一般用户上网行为。

  测试数据

  用上述方法得到近30万条测试数据后,首先对这些数据进行总体宏观上的分析。取连续十天的数据平均值进行比较。以有线网数据为例,共829个网址能够成功访问,占83%,另外171个网站无法访问,占17%。经过分析,这171个网址访问失败主要有下述原因:

  1.某些网址访问需要特殊格式,不满足则http返回400错误,包括如下地址:

  TOP排名第三:-hq.sinajs.cn和TOP排名第四:-wx.qlogo.cn

  2.某些网址需要通过认证才能访问,不满足则http返回403错误,包括如下地址:

  TOP排名第二十九:-p3.music.126.net和TOP排名第三十:-beacon.sina.com.cn

  3.部分子域名需要从主域名访问,如:

  TOP排名十三:-api.bilibili.com和TOP排名十五:-data.bilibili.com都需要从www.bilibili.com访问。

  对于成功访问的829个网址,通过图1查看各个延时时间段内网址的个数(横坐标表示各个访问延时的区间,纵坐标表示落在各个区间的网址个数),可以看出,部分网址访问情况理想,部分网址访问延时较大。延迟较大的需要重点分析并予以优化。

图1 各类访问延时分布

  通过图2可以清晰地比较各个访问延时的总体情况(横坐标对应可成功访问的829个网址,按照访问频度排名高低从左到右排列,纵坐标表示各个网址对应的访问延时,单位毫秒)。为了便于观察,对于访问延迟大于一万毫秒的统一按照一万毫秒来标记。


图2 访问延时总体分布

  通过图1、2数据,表示访问频率较高的网址延时比较大,这部分地址将是优化的主要目标。

  图3是无线网络部分通过电信网和通过教育网访问829个网址的数据对比。

图3 无线网测试数据对比

  从图3中可以看出,无线网访问外网延时总体分布同有线网类似,但是整体访问质量要略逊色于有线网,这属于无线接入端引入的延时,比如射频干扰引起的延迟。同时比较电信和教育网出口访问延时情况,可以看到电信网出口无论是可访问网址个数,还是延时都要优于教育网出口。这是因为上交大电信网出口带宽利用率不高,相对于教育网比较空闲(目前教育网带宽峰值利用率在95%以上),从另一个侧面表明教育网带宽需要进一步升级。

  延时原因分析

  为了解决访问延时较大的问题,我们从上述测试结果中挑选访问频率较高的网址(包括延时较小和延时较大等各种类型)作重点比较分析,通过比较各个网址访问的详细过程,探究访问延时大、用户体验差的可能原因。下面列举出几个典型样例:

  1.部分网址访问状况良好,稳定访问时间在100ms以内。以排名第二的网址msg.71.am为例,连续三天的测试结果如图4所示。(横坐标表示时间,纵坐标表示延时,单位毫秒,以下同)。

图4 msg.71.am 访问数据对比

  该网址IP地址解析在山东济南移动,访问延时低而且稳定,无需优化。

  2.部分网址访问延时不稳定,有时候很小,有时候很大甚至不通。以排名第十六的网址dl.360safe.com为例,连续三天的测试结果如图5。

图5 dl.360safe.com 访问数据对比

  该地址早上访问延时较小,但是到了中午后延时很大,非常有规律。经过观察,访问快的时候CDN调度使得域名解析到101.4.60网段(位于教育网北京);而下午CDN调度会将域名解析到104.192.108网段(位于美国洛杉矶),导致速度变慢,用户体验变差。

  3.部分网址访问延时一直很大。以排名第68位的网址www.bilibili.com和第51位blog.sina.com.cn为例,连续三天的测试结果如图6所示。

图6 www.bilibili.com和blog.sina.com.cn访问数据对比

  其中www.bilibili.com访问延时一直较大,ping报文延时也达到200ms左右。经过分析,访问域名大多解析到47.88.107网段(位于美国加利福利亚州),也有时候解析到120.41.32网段(位于福建电信)。同时blog.sina.com.cn的http访问延时也一直较大;单ping报文延时很小,只有20多毫秒。访问域名有时解析到202.205.3网段(位于北京清华大学),也有时解析到218.30.115网段(位于北京电信)。经过分析,http延时大的原因应为服务器访问量太大。

  经过上述一系列测试和分析,可以看出Web访问瓶颈不在教育网内部,国外网站访问延时相对国内网站普遍偏大。所以,国际访问流量将是我们优化网络访问的另一个重点。其次,教育网及各个运营商不同的DNS解析策略也在很大程度上影响访问延时,校内用户统一DNS解析很重要。

  改进措施

  通过上述测试数据比较和分析,针对影响访问质量的原因,总结出下述具体改进措施:

  1.选择最快的运营商国际线路

  访问同一国外网站,教育网和各家运营商的国际出口有快有慢。快速访问的关键,是正确选择最快的运营商线路。通过在多家运营商线路校园网侧部署探针系统进行多网访问测试,并对测试结果进行比较,进而找出最快的线路。

  另外,各家运营商国际出口各具优势,要快速访问所有的网站,只靠一家运营商线路无法实现,需要接入多运营商带宽,做国际出口组合。

  2.实施网络出口流量控制策略

  接入多线带宽后,还要使用专用流控设备,把访问目标网站的流量切到最快的出口线路上。网络流量不会自动走最快的运营商线路。通过使用流控设备进行管控,才能让访问目标网站的流量走最快、最稳定的线路。

  3.部署内网缓存系统

  把最常访问的数据(网页、图片、视频等)缓存到本地,用户可直接从本地缓存服务器中访问,大大加快访问速度,同时节省出口带宽。

  4.贴身部署DNS,大大提高DNS响应速度,同时拒绝解析无法访问的域名

  为用户贴身部署DNS,减少由于配置了非校园网DNS服务器引入的网络访问延时。部分国外域名对应IP长期无法访问,而大量国外网站引用了其上的JavaScript资源或API等,造成网页整体加载缓慢。考虑到这些域名本身已不可达,因此在校园网DNS服务器上主动拒绝这些域名的解析,可避免用户获得并尝试连接无法连通的IP地址,从而有效提升网站访问速度。

  5.持续调优

  各运营商的国际互联网出口,以及校内的各种不同类型的访问流量都不是一成不变的,所以想一劳永逸地实现最优化的国际流量访问比较困难,需要定期根据实际情况作出及时调整。

  本文给出了一种评估用户上网体验的方法,通过全面系统的测试用户上网延时并比较分析延时原因,进而总结出具体的改进措施。后续通过措施逐步实施,改善师生访问校外网络的质量。由于校园网各个出口运营商网络的复杂性以及用户体验改善的长久性,未来在缓存系统、DNS部署以及根据校内用户不同类型的流量分别控制方面都还有许多的优化空间(责编:王左利)

  (作者单位为上海交通大学网络信息中心)

(本文刊登于《中国教育网络》2018年11月刊)

------分隔线----------------------------
标签(Tag):校园网质量分析及优化 PhantomJS
------分隔线----------------------------
推荐内容
猜你感兴趣