首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于P2P和CDN的监控传输子系统的设计
来源:本站整理  作者:佚名  2009-06-16 14:32:41




    实验通过传输子系统从负载发生器下载数据来模拟大量数据请求,并分别收集下列三种模型的实验数据:
    (1)传统多线程阻塞模型,即每个现存阻塞得处理一个单独的请求,在图3中用A表示,并简称为A模型。
    (2)固定线程数目的线程池,初试线程数采用CPU个数的2倍加2来确定,即10个初始线程,在图3中用B表示,并简称为B模型。
    (3)采用该文提出的线程池动态管理算法的模型,初试线程个数也为10个,在图3中用C表示,并简称C模型。
4.2 分析数据得平均值
    下面数据均是通过nmon采样和ninon analyser分析得到的平均值。
    (1)CPU使用率比较。从图3中可以看到,在A模型中,基本已经占用了所有的CPU资源。因为每个线程服务一个请求,一旦请求大量到来,就会有大量的线程产生。而在B模型中,因为线程个数固定,且已经预先创建好,当请求量过大时,任务队列会起到很好的缓冲作用。C模型是效果最好的,因为线程个数总是会被调整到最佳的个数,并且任务池的使用有效减少了系统中频繁的内存申请和释放操作。

    (2)空闲内存比较。从图4中可以容易分析得到,当请求的总量相同的情况下,A和B模型占用的内存情况很接近。但是C模型中,任务池和线程池的大小都是动态伸缩的,提高了系统的处理能力,自然也会使用更多的内存。

    (3)网络I/O流量比较。图5展现了3种模型的网络I/O情况,在A模型中,因为采用的是阻塞的方式进行的,当套口已经没有数据可读,线程会阻塞等待数据的到达,而其他已经有数据到达的套接口则可能得不到处理,因此A模型的网络吞吐量比较低。在B模型中,采用的非阻塞和线程池模型,一旦一个套接口将要发生阻塞,线程可以很快切换到其他已经有数据准备好的套接口上,加快了数据的接收速度,因此也提高了网络的传输速度。在C模型中,减小了内存和CPU等部件的负载,提高了性能,动态任务池使得系统有比B模型更好的缓存能力,因此C模型比B模型网络吞吐量更高是可以理解的。系统采用的是l 000 Mb/s网卡,基本达到了网卡的极限。


5 结 语
    根据统计线程池中的各个线程的平均等待时间和当前CPU的使用率,对线程池的尺寸进行动态的调整。利用这种线程池动态管理算法,可以很好地适应Internet上客户请求突发性变化的情况。当突然到来大量请求时,根据算法原理,可以增加适量的线程满足额外的请求;当请求变少以后,会将线程的数量减少,从而减轻系统的压力。经过实验分析比较可以得出,采用线程池动态管理算法之后,有效减小了CPU的负载压力,提高了网络吞吐量和系统整体性能。但是,线程池的管理还有很多地方可以优化,比如调整线程池尺寸都是以2为步长进行调整的,但是这个步长是根据经验得出来的,还没有很好的理论依据。同时,可以增加更多的统计信息加入到算法的决策之中,提高算法的精确性。
    这里实现了在多媒体监控传输系统中P2P和CDN的结合,引入半同步/半异步的模式,设计了系统框架,引入任务池和线程池等技术,解决了媒体资源服务器和原始服务器之间的高效传输子系统的网络瓶颈,设计了有效的线程池动态管理算法。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:74,476.56000 毫秒