EDN China > 设计实例 > 工业电子 > 安防监控 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于P2P和CDN的监控传输子系统的设计

内江师范学院 王建 刘益和?? 2009年06月22日 ?? 收藏0

  O 引 言

  对等网络P2P(Peer-to-peer)技术是目前国际计算机网络技术领域研究的一个热点。该技术的雏形产生于20世纪70年代,典型代表是 UseNet和FidoNet;而CDN内容分发网络(Content Distri-bution Network)则是将网站的内容或媒体发布到最接近用户的网络“边缘”,当用户访问时,系统自动无缝地把用户重定向到边缘服务器,从而减轻中心服务器和主干网络的压力,提升流媒体或网站的性能。

  随着网络技术的迅猛发展,流媒体内容在互联网中大量传播,对于高质量的流媒体分发服务体现得越加明显,因而为大量用户提供快速,高质量的流媒体分发服务成为了最近研究的热点和难点。

  在多媒体监控系统中所要传输的数据量是相当大的,主要包括:控制信息、反馈信息、视频、音频和其他如文本信息等。对于传统的基于C/S模式或B/S模式的多媒体监控系统,在监控点和监控中心之间进行这些大量流媒体数据传输,服务器性能会直线下降。基于此本文把P2P技术引入到该多媒体监控系统设计中主要做了如下改进:

  (1)设计了基于P2P和CDN的监控传输子系统。

  (2)客户利用P2P方式从边缘服务器得到服务,同时原始服务器和边缘服务器之间的内容发布也通过P2P方式进行,通过这种方式有效地利用了系统中网络带宽和主机资源,减轻了原始服务器和边缘服务器的压力,减少了主干网数据流量,降低了运营商的成本,提高了客户的服务质量。

  (3)为了缓解网络I/O和磁盘I/O的矛盾,在传输子系统的设计中采用半同步/半异步的方式将网络I/O与磁盘I/O分开,并通过任务池的方式进行缓冲。

  (4)设计了线程池动态管理算法,有效减小了CPU的负载压力,提高了网络吞吐量和系统整体性能。

  (5)针对传统方式的缺点进行了有效的改进,利用半同步/半异步的方式建立系统框架,利用任务池对数据的读写请求进行封装,采用线程池对任务池中的任务进行高效异步处理。通过对任务的闲置情况进行统计,并结合系统的当前资源利用情况,对任务池和线程池进行动态管理,降低了CPU的负载,提高了系统的吞吐量。

  2 系统框架

  系统总体布局如图1所示,边缘服务器将会与若干客户节点形成P2P网络,提供高效的服务质量,便于降低服务器的负载。

系统总体布局

  当客户在边缘服务器上请求资源不命中时,边缘服务器会向原始服务器请求,原始服务器会根据具体请求要求,将需要的媒体资源通过该文实现的高效传输子系统存储在本地,然后利用P2P的方式向多个边缘服务器发布内容。

  通过这种方式有效减轻了原始服务器在内容发布时的压力。理论上它只要将一个完整的媒体副本发送出去,其他边缘服务器会根据P2P的方式得到一个完整的副本。同理,当边缘服务器向客户提供服务时,理论上它也只需要传输一个副本,多个客户端就可以得到完整的服务。原始服务器和媒体资源服务器通常是在一个子网中,网络速度比磁盘I/O速度更快。此时,磁盘I/O成了系统的瓶颈。为了缓解网络I/O和磁盘1/O的矛盾,在传输子系统的设计当中采用半同步/半异步的方式将网络I/O与磁盘I/O分离开,并通过任务池的方式进行缓冲。

  上层的主线程处理epoll异步事件和协议交互,框架将接收到的数据按照固定大小封装在任务里面,然后将任务放回任务池,下层线程池负责从任务池中取出任务,进行具体的磁盘读写操作,操作完成后线程和任务分别回到线程池和任务池等待调度。

  3 算法实现

  为了对线程池进行有效的动态管理,需要采集各种性能参数,经过综合分析之后,对线程池做出调整。该算法中参考了两个最关键的参数,即任务的平均等待时间和 CPU使用率。通过任务的平均等待时间,可以分析得到当前线程池需要调整的方向。通过CPU使用率可以得到是否需要增加或者减少线程。


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

P2P? CDN? 监控? 内容分发网?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈