论文部分内容阅读
随着网络通信技术与计算机技术的发展,人类社会正在迅速进入以宽带网络为中心的信息时代。互联网发展推动了网络用户逐渐的增加,带动了大规模互联网应用的发展。同时,网络服务规模的扩展,对服务器并发处理能力带来了巨大的挑战。本文研究和讨论了提高网络服务器性能的方法,并设计和实现了基于P2P网络的视频点播服务器。VOD(Video-On-Demand)的基础是流媒体服务,但是流媒体对带宽资源要求高且服务时间长,传统的C/S(Client/Server)模式下服务器很容易成为瓶颈,如何在Internet上提供大规模的流媒体内容分发一直是过去流媒体研究领域的核心问题。P2P网络技术的出现,为VOD服务带来了新的思路。P2P网络上的VOD服务,通过利用普通节点的资源为其他节点提供服务,在不改变现有网络配置的前提下具有良好的性能,是一种有广泛应用前景的VOD服务方法。本文研究了高性能服务器的几种服务器模型和网络I/O机制。通过对这些模型的研究,指出如果采用基于传统的网络I/O模型来提供高并发连接服务,在并发客户数量超过服务器最大支持数时,会出现服务器负载达到饱和或服务器崩溃,而网络带宽并没有得到充分利用的现象。通过对几种服务器网络I/O方法的分析和比较,结合基于P2P网络的VOD服务器这个具体应用,提出了流水线式服务器模型与EPOLL网络I/O结合的服务器模型。在流水线式服务器中,一个完整的网络服务被分为多个阶段,每个线程只负责完成服务的特定环节,互不干涉,降低了并行粒度,使得各网络请求实现了任务内并行,各任务在执行过程中重叠,提高了服务的并发度和性能。网络I/O部分使用了Linux 2.6中引进的EPOLL技术,采用单个独立线程负责网络数据报的收发。这样避免了在并发度较高的情况下,频繁的线程切换带来的大量系统开销,提高了服务器的性能。在实现部分,本文就几个与服务器性能关系密切的环节为例,给出了较为详细的实现。最后通过对现阶段已经完成的网络I/O部分进行测试,部分验证了这种服务器模型初步达到设计目的,与传统服务器比较,性能有很大提高。