龙源期刊?/p>
http://www.qikan.com.cn
基于
EPOLL
机制?/p>
Linux
网络服务器设?/p>
与实?/p>
作者:何凯
来源:《电子技术与软件工程?/p>
2016
年第
02
?/p>
?/p>
?/p>
笔者在开发一?/p>
Linux
网络服务器时,经过对多种机制的比较,发现
EPOLL
机制效率最
高,该机制可以满足并发处理海量网络连接的要求,非常适合高性能服务器的设计要求。因?/p>
笔者对
EPOLL
机制进行了深入的研究,并且设计了一款基?/p>
EPOLL
机制的高效的
Linux
网络
服务器。在实际应用中,该服务器有着稳定、高效的特点?/p>
【关键词?/p>
EPOLL Linux
服务?/p>
1
引言
笔者在实际工作中,需要开发一款基?/p>
Linux
的高性能网络服务器,该服务器与前端的?/p>
种嵌入式设备通过有线网络或者无线网络连接。在?/p>
Linux
网络编程技术分析后,最终选择?/p>
EPOLL
机制。在经过几个月的调试、改进之后,服务器可以准确、稳定、高效的工作。在?/p>
拟测试中,该服务器可以稳定的连接与控制前?/p>
10
万个设备。取得了良好的效果?/p>
2 Linux
?/p>
I/O
多路复用技术分?/p>
Linux
上的
I/O
多路复用技术主要有
select
模型?/p>
poll
模型?/p>
epoll
模型?/p>
select
模型最大的缺点是最大并发数限制,因为一个进程所打开?/p>
socket FD
(文件描?/p>
符)是有限制的,默认?/p>
1024
,因?/p>
select
模型的最大并发数就被限制了。当然,我们可以?/p>
过修改系统参数增大最大并发数,然而由?/p>
select
的每次调用都会线性扫描全部的
socket FD
集合。当
socket FD
增大时,会导致服务器效率线性下降?/p>
poll
模型基本上和
select
在效率上是一样的?/p>
select
的问题在
poll
模型中也没有被解决?/p>
epoll
模型是目前比较优秀?/p>
I/O
多路复用模型,首先,
epoll
没有最大并发连接的限制?/p>
上限是整个系统最大可以打开?/p>
socket FD
数目,这个数远大?/p>
2048
,一般这个数目和系统?/p>
存关系很大,
1G
内存的机器的最?/p>
socket FD
数目可以达到
10
万左右。其次,
epoll
最大的?/p>
点在于它只关心活跃的连接,而跟连接总数无关。因此在实际的网络环境中?/p>
epoll
的效率会
远高?/p>
select
?/p>
poll
?/p>