论文部分内容阅读
随着互联网技术的不断普及与快速发展,Web应用以其优秀的通用性与交互性,成为互联网接入平台的首选;然而,市面上流行的几款Web服务器在处理请求时占用物理资源相对较多,制约了网络应用在资源相对有限的情况下对请求的响应速度;因此,开发轻量级高性能Web服务器,保证网站迅捷稳定的工作,对互联网的进一步发展普及具有重要意义。本论文选取轻量级的异步非阻塞多线程Web服务器作为研究课题,研究了一种可根据负载动态调节大小的线程池以及线程池任务调度算法并应用在Web服务器中,主要内容可归纳如下:首先,通过对HTTP、TCP等重要计算机网络协议的详细介绍,以及对Socket、进程线程、服务器IO模型等网络程序设计基础的学习,结合对Nginx服务器的深入分析,设计了一种轻量级的异步非阻塞Web服务器,服务器基于Reactor模式异步处理海量请求,利用线程池处理计算任务,占用资源少、运行速度快、部署方便,可以有效的应用在资源相对有限的网络环境中;接着,介绍了线程池的基础技术以及设计思想,设计了一种可动态调节大小的线程池:当请求数量增加时,线程数量随之增加以满足系统性能的需求;当请求数量较少时,线程池销毁空闲线程以有效的利用系统资源。另外还研究了一种基于线程池的任务调度方法,可以将任务分配给最合适的线程进行处理;最后,在Linux平台下对服务器的基础功能、系统容量、吞吐率以及延迟表现进行了测试,结合测试结果优化设计。测试结果显示本文设计的服务器支持基本的Web功能,运行稳定可靠,性能表现良好,满足设计要求。论文创新点在于:研究了一款轻量级的异步非阻塞多线程Web服务器。基于IO多路复用与线程池技术实现,运行稳定可靠,性能表现良好;研究了一种可根据负载动态调节大小的线程池,以及一种基于线程池的任务调度方法。