The C10K problem

大概现在应该考虑的问题是C10M了吧,实践一下。

5种处理大量客户的I/O策略####

  • 每一个连接处理大量客户,用非阻塞I/O和水平读触发
    很流行,尤其重要的是,读通知只是内核的一个提醒,当你去读描述符时,描述符不一定是准备好了的,所以,用非阻塞,很重要。
  • 每一个连接处理大量客户,用非阻塞I/O和边沿读触发
    这种模式对编程错误更的容忍度更低,一旦错过了一个事件,可能这个连接的事件就从此错过了。
  • 每一个连接处理大量客户,用异步I/O
    好像不是很流行,异步I/O实现的目的是为了完成标准大于性能考虑。
  • 一个服务器线程处理一个客户,阻塞I/O
    嗯。。。。有特定场景这种实现性能比较高吗?待考证
  • 将服务器代码拿进内核
    有几个实现,文章介绍的不多。

结论####

最常用的就是i/o复用模型下的水平读触发和边沿读触发,后者理论上具有更高的性能但是对编程要求更严格,下一步实践这两种模型。

你可能感兴趣的:(The C10K problem)