epoll_wait:maxevents

时间:2010-06-03 20:14:58

标签: c linux events epoll

int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);

我对 maxevents 参数有点困惑。假设我想编写一个可以处理多达10k连接的服务器。我会将 maxevents 定义为10000,还是应该因为某些原因而降低?

1 个答案:

答案 0 :(得分:13)

Maxevents只是struct epoll_events指向的*events数组的长度。

如果内核当时有超过该数量的事件要提供给你的程序,它会看到它不应该因为你不期望在那个特定的_wait中返回那么多事件。

您可能需要为您的程序试验最佳大小。最佳尺寸甚至可能因架构而异。对于被轮询的少量文件描述符,您可以很容易地将maxevents设置为文件数(并相应地调整events数组的大小),但同时注意所有文件的可能性是低,所以你可能会使用较低的maxevents值。