论文部分内容阅读
【摘 要】设计一种典型的CDN(Content Delivery Network,内容分发网络)构架,并对该架构进行了缓存模块和智能调度DNS模块的划分,在现有的web服务器集群上使用成熟的开源软件来实现搭建CDN系统。通过性能测试验证系统在加快网站访问和提高服务器稳定性的作用。
【关键词】CND;服务器集群;性能测试
Abstract:Design of a typical CDN (Content Delivery Network, a content distribution network) architecture, and the architecture has been divided DNS cache module and intelligent scheduling module, using mature on existing web server cluster to achieve open source software to build CDN systems. Speeding up Web access and improve server stability performance test verification system by the action.
Key words:Content Delivery Network,web server cluster, performance test
引言
CDN技术可以通过在全国不同的地区部署缓存服务器,将内容和服务服务商的数据内容推送至最接近用户的缓存服务器,使得用户能够直接就近的获取自己所需要的内容,从而加快访问速度,改善用户体验,达到增强提高服务器集群的稳定性,减少网络中的流量,缓解负载过重的互联网[1-3]。内容路由和负载均衡技术是部署CDN的关键,通过对CDN工作原理和网络体系进行深刻的解剖和分析,设计了一种典型的CDN网络构架,并对系统的性能指标进行了测试,验证了系统的高效与稳定性。
一、网络架构图
本系统的网络架构主要分为源站和CDN层两个部分,本系统主要研究对象为CDN层,源站层在本论文中只做简单的描述,不再阐述详细的搭建过程。
图1 源站服务器集群网络架构图
图2是基于源站之上的CDN层:我们在设计中模拟CDN提供商在全国各地分别搭建为电信用户和联通用户以及除两者之外的用户就近访问的缓存服务器。
二、模块的划分与说明
本系统的CDN部分整体架构我们可以将其简化成智能调度DNS 和squid两大模块。智能调度DNS模块是CDN服务中的关键系统.当用户访问加入CDN服务的网站时,域名解析请求将最终由智能调度DNS负责处理。squid采用是反向代理,在这里就是一个最简单的CDN节点[4]。
图2 基于源站之上的CDN架构图
智能调度DNS服务器采用的是开源域名解析软件Bind。本文主要使用的是Bind 9版本进行搭建的。Bind服务主要包括DNS域名解析服务器、DNS解析库以及调试、测试服务器的软件工具三个部分:
Squid是一个缓存Internet数据的软件,它接收客户端的访问请求,并自动处理所下载的数据。在服务集群中Squid是一个性能很高的代理缓存服务器,它能够加快客户浏览网站的速度,提高客户机的访问命中率。和大多的代理缓存服务不一样,Squid通过使用一个单独的、非模块化的I/O进程来处理网站访问的请求。Squid服务主要由主程序Squid,DNSServer(DNS查询程序),管理工具和几个请求执行认证的程序组成。
三、实验仿真
图3 CDN搭建前后访问时间对比图
采用多台Squid服务器模拟CDN提供商在国内各地部署的缓存服务器,通过智能DNS的配置实现客户从最近的CDN节点(缓存服务器)获取访问网络资源的预期目标[5]。同时,对该CDN系统进行了网站访问压力测试,通过数据的收集和分析,验证系统在加快网站访问和提高服务器稳定性的作用。
本次压力测试我们将两种情况,一种是直接在web网站上压力测试,另一种是在基于web站点之上的CDN架构上压力测试。客户请求数为100*100,在我们将通过多次测试获取其结果的平均数。在Squid服务器Linux系统中,一般安装好Apache后可以直接执行ab命令,下面为部分测试结果图。
蓝色部分为直接在Web网站上的测试数据,而红色部分为搭建CDN后的测试数据。图5.5为两种情况请求时间、处理时间、等待时间和总时间的柱状图。
在之前的ab测试结果中,我们还能得出下面一组数据:总并发数的百分比客户的响应时间。同样蓝色部分为直接在Web网站上的测试数据,而红色部分为搭建CDN后的测试数据。
图4 CDN搭建前后百分比客户响应时间对比图
从上述搜集和整理的数据我们可以明显看出,在搭建CDN后各项指标的响应时间基本上缩短为了原来的一半。这些数据的结果能够充分的表明:在处理高并发访问时搭建CDN架构能明显的缩短网站访问时间,加快网站访问速度。
四、结束语
本文提出的CDN内容分发系统设计方案,充分利用了现有的网络结构,结构简单,是现阶段十分有效的CDN实现形式。但当前Squid服务都只进行了最简单的缓存策略配置,在后续研究中希望能够实现根据不同种类互联网内容提供商站点的实际流量分布情况进行缓存策略配置,从而达到更优秀的缓存效果。
参考文献:
[1]吕智慧,杨舰,张世永,钟亦平,“面向宽带网络的服务网格研究与实现”[M].北京:清华大学出版社,2003
[2]张涛,刘志宏.三网融合背景下的 CDN 融合演进[J]. 信息通信, 2011
[3]聂秀英.CDN 业务发展现状及发展趋势[J]. 现代电信科技, 2012
[4]刘爱洁.负载均衡技术浅析[J].電信工程技术与标准化,2002
[5]余红梅,樊自普.CDN 架构下流媒体代理缓存策略的研究[J].电子测试,2010
作者简介:
蒋黎明,(1983-),博士,讲师,湖南永州人,研究方向为网络安全与web应用技术。
【关键词】CND;服务器集群;性能测试
Abstract:Design of a typical CDN (Content Delivery Network, a content distribution network) architecture, and the architecture has been divided DNS cache module and intelligent scheduling module, using mature on existing web server cluster to achieve open source software to build CDN systems. Speeding up Web access and improve server stability performance test verification system by the action.
Key words:Content Delivery Network,web server cluster, performance test
引言
CDN技术可以通过在全国不同的地区部署缓存服务器,将内容和服务服务商的数据内容推送至最接近用户的缓存服务器,使得用户能够直接就近的获取自己所需要的内容,从而加快访问速度,改善用户体验,达到增强提高服务器集群的稳定性,减少网络中的流量,缓解负载过重的互联网[1-3]。内容路由和负载均衡技术是部署CDN的关键,通过对CDN工作原理和网络体系进行深刻的解剖和分析,设计了一种典型的CDN网络构架,并对系统的性能指标进行了测试,验证了系统的高效与稳定性。
一、网络架构图
本系统的网络架构主要分为源站和CDN层两个部分,本系统主要研究对象为CDN层,源站层在本论文中只做简单的描述,不再阐述详细的搭建过程。
图1 源站服务器集群网络架构图
图2是基于源站之上的CDN层:我们在设计中模拟CDN提供商在全国各地分别搭建为电信用户和联通用户以及除两者之外的用户就近访问的缓存服务器。
二、模块的划分与说明
本系统的CDN部分整体架构我们可以将其简化成智能调度DNS 和squid两大模块。智能调度DNS模块是CDN服务中的关键系统.当用户访问加入CDN服务的网站时,域名解析请求将最终由智能调度DNS负责处理。squid采用是反向代理,在这里就是一个最简单的CDN节点[4]。
图2 基于源站之上的CDN架构图
智能调度DNS服务器采用的是开源域名解析软件Bind。本文主要使用的是Bind 9版本进行搭建的。Bind服务主要包括DNS域名解析服务器、DNS解析库以及调试、测试服务器的软件工具三个部分:
Squid是一个缓存Internet数据的软件,它接收客户端的访问请求,并自动处理所下载的数据。在服务集群中Squid是一个性能很高的代理缓存服务器,它能够加快客户浏览网站的速度,提高客户机的访问命中率。和大多的代理缓存服务不一样,Squid通过使用一个单独的、非模块化的I/O进程来处理网站访问的请求。Squid服务主要由主程序Squid,DNSServer(DNS查询程序),管理工具和几个请求执行认证的程序组成。
三、实验仿真
图3 CDN搭建前后访问时间对比图
采用多台Squid服务器模拟CDN提供商在国内各地部署的缓存服务器,通过智能DNS的配置实现客户从最近的CDN节点(缓存服务器)获取访问网络资源的预期目标[5]。同时,对该CDN系统进行了网站访问压力测试,通过数据的收集和分析,验证系统在加快网站访问和提高服务器稳定性的作用。
本次压力测试我们将两种情况,一种是直接在web网站上压力测试,另一种是在基于web站点之上的CDN架构上压力测试。客户请求数为100*100,在我们将通过多次测试获取其结果的平均数。在Squid服务器Linux系统中,一般安装好Apache后可以直接执行ab命令,下面为部分测试结果图。
蓝色部分为直接在Web网站上的测试数据,而红色部分为搭建CDN后的测试数据。图5.5为两种情况请求时间、处理时间、等待时间和总时间的柱状图。
在之前的ab测试结果中,我们还能得出下面一组数据:总并发数的百分比客户的响应时间。同样蓝色部分为直接在Web网站上的测试数据,而红色部分为搭建CDN后的测试数据。
图4 CDN搭建前后百分比客户响应时间对比图
从上述搜集和整理的数据我们可以明显看出,在搭建CDN后各项指标的响应时间基本上缩短为了原来的一半。这些数据的结果能够充分的表明:在处理高并发访问时搭建CDN架构能明显的缩短网站访问时间,加快网站访问速度。
四、结束语
本文提出的CDN内容分发系统设计方案,充分利用了现有的网络结构,结构简单,是现阶段十分有效的CDN实现形式。但当前Squid服务都只进行了最简单的缓存策略配置,在后续研究中希望能够实现根据不同种类互联网内容提供商站点的实际流量分布情况进行缓存策略配置,从而达到更优秀的缓存效果。
参考文献:
[1]吕智慧,杨舰,张世永,钟亦平,“面向宽带网络的服务网格研究与实现”[M].北京:清华大学出版社,2003
[2]张涛,刘志宏.三网融合背景下的 CDN 融合演进[J]. 信息通信, 2011
[3]聂秀英.CDN 业务发展现状及发展趋势[J]. 现代电信科技, 2012
[4]刘爱洁.负载均衡技术浅析[J].電信工程技术与标准化,2002
[5]余红梅,樊自普.CDN 架构下流媒体代理缓存策略的研究[J].电子测试,2010
作者简介:
蒋黎明,(1983-),博士,讲师,湖南永州人,研究方向为网络安全与web应用技术。