小编Kev*_* S.的帖子

如何最有效地处理大量文件描述符?

似乎有几个选项可用于处理大量套接字连接的程序(例如Web服务,p2p系统等).

  1. 产生一个单独的线程来处理每个套接字的I/O.
  2. 使用select系统调用将I/O多路复用到一个线程中.
  3. 使用轮询系统调用来多路复用I/O(替换选择).
  4. 使用epoll系统调用以避免必须通过用户/系统边界重复发送套接字fd.
  5. 产生许多I/O线程,每个线程使用poll API复用一组相对较小的连接总数.
  6. 按照#5,除了使用epoll API为每个独立的I/O线程创建一个单独的epoll对象.

在多核CPU上,我希望#5或#6具有最佳性能,但我没有任何硬数据支持这一点.搜索网页出现了这个页面,描述了上面作者测试方法#2,#3和#4的经验.不幸的是,这个网页似乎是7岁左右,没有明显的最新更新.

所以我的问题是,哪些方法让人们发现效率最高和/或是否有另一种方法比上面列出的方法更好?将赞赏对现实生活图,白皮书和/或网络可用书面的参考.

sockets linux optimization performance

7
推荐指数
1
解决办法
2359
查看次数

标签 统计

linux ×1

optimization ×1

performance ×1

sockets ×1