epoll_wait:maxevents

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

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

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

如果内核有超过这个数量的事件喂给你的程序,它会看到,它不应该是因为你不希望那么多的特定_wait返回。

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