新闻中心

EEPW首页>手机与无线通信>设计应用> 基于P2P和CDN的监控传输子系统的设计

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

作者: 时间:2009-06-16 来源:网络 收藏

实验通过从负载发生器下载数据来模拟大量数据请求,并分别收集下列三种模型的实验数据:
(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模型是效果最好的,因为线程个数总是会被调整到最佳的个数,并且任务池的使用有效减少了系统中频繁的内存申请和释放操作。

本文引用地址://m.amcfsurvey.com/article/158040.htm

(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机相关文章:p2p原理



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭