轮询 vs poll

28 views
Skip to first unread message

stevewang

unread,
Jan 3, 2007, 7:29:57 AM1/3/07
to 高性能网络编程邮件列表
在写一个网络游戏服务器的网络模块的时候,发现一个问题:在某些情况下更采用轮询的方式要比poll更适用。
网络情况:大约800个客户端,每个客户端每秒大概发送32个数据包,平均每个包大约250字节。
在服务器端(linux操作系统,2.4内核)采用poll的时候,网络处理线程的CPU占用率最高达90%,平均也在70%左右。后来改用轮询方式,每5ms发送和接收网络数据,结果网络处理线程CPU占用率最高只有50%,一般稳定在20%以下。从实际效果来看,客户端的延时没有明显变化(因为游戏逻辑对延时影响要大得多,而且延时10ms也可以接收)。

因为是2.4内核,所以没有使用epoll试验。

poll效率真的这么差吗?各位有没有实际的感受?

sunway

unread,
Jan 4, 2007, 3:14:50 AM1/4/07
to 高性能网络编程邮件列表
epoll还是poll?
就我同事尝试下来epoll的效率是很不错的

Fyter

unread,
Jan 10, 2007, 8:10:21 PM1/10/07
to 高性能网络编程邮件列表
epoll
双志强双核3.0,最多每秒可以处理多少逻辑行走包(50BYTE)?(逻辑上,非调用API数量)

Linker M Lin

unread,
Jan 17, 2007, 1:13:26 PM1/17/07
to 高性能网络编程邮件列表
还有epoll支持了更多的连接数。

On Jan 3, 8:29 pm, "stevewang" <svenw...@21cn.com> wrote:
> 在写一个网络游戏服务器的网络模块的时候,发现一个问题:在某些情况下更采用轮询的方式要比poll更适用。
> 网络情况:大约800个客户端,每个客户端每秒大概发送32个数据包,平均每个包大约250字节。

> 在服务器端(linux操作系统,2.4内核)采用poll的时候,网络处理线程的CPU占用率最高达90%,平均也在70%左右。后来改用轮询方式,每5ms-发送和接收网络数据,结果网络处理线程CPU占用率最高只有50%,一般稳定在20%以下。从实际效果来看,客户端的延时没有明显变化(因为游戏逻辑对延时影响-要大得多,而且延时10ms也可以接收)。
>
> 因为是2.4内核,所以没有使用epoll试验。
>
> poll效率真的这么差吗?各位有没有实际的感受?

Reply all
Reply to author
Forward
0 new messages