文档库 最新最全的文档下载
当前位置:文档库 › 基于Linux的多线程池并发Web服务器设计

基于Linux的多线程池并发Web服务器设计

电子设计工程

Electronic Design Engineering

第23卷Vol.23第11期No.112015年6月Jun.2015

收稿日期:2014-09-27

稿件编号:201409256

作者简介:陈涛(1989—),男,湖北武汉人,硕士研究生。研究方向:通信与信息系统。

Web 服务器常常需要处理多个并发请求,针对每一个请

求,Web 服务器会有相应的并发程序来执行相关操作。

这一过程中,使用进程是构造并发程序最简单的方法:为了实现进程间的信息交互,它们必须使用显式的进程间通信((IPC)机制,由于进程控制和IPC的开销很高导致基于进程的设计运行速度往往比较慢[2-4]。

为解决进程间信息共享而造成的高开销问题,本文采用多线程池的并发设计,利用信号量访问共享变量,使用生产者一消费者模型降低线程开销,从而提高系统访问速度和资源利用率。

1基于多进程Web 服务器的不足

目前主流boa 服务器主要基于多进程来构造并发程序。

首先由父进程去接受客户端的连接请求,然后创建一个新的子进程去为每一个客户端提供服务。这种父子进程会共享文件表,但是不共享用户地址空间。基于这种特性,这类进程中不会存在一个进程覆盖另一个进程的虚拟存储器,但是这也使得进程共享状态信息变得更加困难,因而基于多进程Web 服务器引入了IPC机制。在面对大量并发处理请求时,由于进程机制和IPC机制开销大,会使得服务器延时效果明显。

2

改进服务器的设计要素

2.1

基于线程池的并发设计

线程是程序执行流的最小单元,线程由内核自动调度。

一个进程里可以同时运行多个线程,每个线程都有自己的线程上下文,包括一个唯一的栈、栈指针、条件码、程序计数器、整数线程ID 、通用目的寄存器,运行在同一个进程里的所有线程共享该进程的整个虚拟地址空间。

同时,线程执行又区别于进程执行,在于:1)较于进程环境,一个线程环境拥有的系统资源极少;2)线程不构成父子层次关系。

在线程池技术中,我们在任务还没有到来之前,创建一定默认数量的线程。这些线程均处于睡眠状态,不消耗CPU ,只占用较少的内存空间。当轮询到有请求到来后,线程池将会分配给这次请求一个空闲的线程,进行执行。

当预先创建的线程都已处于运行状态,即并发请求数量多于线程池中最少空闲线程数时,线程池将会自由创建一定数量的新线程,用于处理更多的并发请求。当系统比较闲的

基于Linux 的多线程池并发Web 服务器设计

陈涛,任海兰

(武汉邮电科学研究院湖北武汉430074)

摘要:时至今日,Web 服务已成为互联网上最常用的服务。目前Linux 平台的Web 服务器主要基于进程或线程机制,面对大数量的并发请求,延时现象较为明显。这主要原因在于服务器存在着利用率不高,资源消耗大等问题。文中利用信号量机制和生产者一消费者模型,设计基于多线程池并发Web 服务器能够更高效的实现资源调度与共享。文中最后的测试结果表明,设计实现的Web 服务器具有更强的并发处理能力和服务效率。关键词:Web 服务器;Linux ;多线程池;并发中图分类号:TN98

文献标识码:A

文章编号:1674-6236(2015)11-0167-03

Concurrent web server designing based on multi -threaded

technology under Linux system

CHENTao ,RENHai -lan

(Wuhan Research Institute of Post and Telecommunications ,Wuhan 430074,China )

Abstract:Today ,Web services have become the most commonly used services on the Internet.Nowadays ,Linux Web services are based mainly on process or thread mechanism,It is obvious that delay time will become longer when faced witha large number of concurrent requests.This is mainly caused by the low utilization and large resource consumption of the web server.This paper introduce a new web server ,whichis based on multi -threaded pool technology ,making use of semaphore mechanismand producer -customer model to dispatchshared recourse ,The final test results show that the new Web server provides better concurrent performance and service qualities.Key words:Web server ;Linux ;multi -threaded pool ;concurrency

-167-

相关文档