C10K问题研究
来源:互联网 发布:做网络销售的方法 编辑:程序博客网 时间:2024/06/08 04:21
1 epoll的两种工作模式
(1) LT水平触发
该模式为缺省的工作模式,并且同时支持block与non-block。在这种模式下,内核会告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作,如果你不做任何操作,内核还是会继续通知你的,该模式与传统的select以及poll模式是相同的。
(2) ET边缘触发
该模式只支持non-block模式,在这种模式下,当描述符从未就绪变为就绪时,内核通知以后就会假设用户空间程序已经知道文件描述符已经就绪,并且不会再为那个文件描述符发送更多的就绪通知,直到你做了某些操作导致那个文件描述符不再处于就绪状态了。如果用户空间程序一直不对这个fd做io操作(从而使得它再次转为未就绪),内核不会发送更多的通知。
2 epoll优于传统select及poll有以下几点:
(1) epoll不会随着fd数目的增长而效率降低,而且一个进程同时打开的fd数目的限制也不会成为瓶颈。
(2) epoll使用mmap来进行内核与用户空间的消息传递,以此避免内存拷贝的代价。
3 参考文献
(1) 高负载高应用参考索引
(2) 开发高性能服务器的思考
(3) 高性能服务器架构
(4) linux性能监控
(5) 压力测试衡量CPU的三个指标
(6) The C10K problem
(7) ThreadBuildingBlocks
- C10K问题研究
- C10K问题研究
- C10K问题
- C10K问题
- C10K问题
- c10k问题
- C10K问题
- C10K问题
- c10k 问题
- C10K问题
- c10k问题
- C10K问题
- C10K问题
- C10K问题
- C10K问题
- c10k问题
- c10k问题
- C10K问题
- JAVA中的时间操作
- 移动用户体验设计:iOS APP体验设计
- poj2533(最长递增序列)
- C语言库函数qsort
- vs2008使用技巧推荐
- C10K问题研究
- javascript中为某个对象(控件)绑定事件的几种方法
- Android API : SimpleCursorAdapter
- 【phpcms-v9】category.php文件分析-添加栏目
- C/C++移位运算符出界后的结果是不可预期的
- Android之Adapter用法总结
- poj1887(最长递减子序列)
- 从今天起,工作日每天写一篇技术博客
- usaco Bessie Come Home