epoll模型的使用及其描述符耗尽问题的探讨
来源:互联网 发布:升级下windows updata 编辑:程序博客网 时间:2024/04/25 21:16
每次接受新连接的时候,我监视了这几个事件。
EPOLLIN | EPOLLET | EPOLLERR | EPOLLHUP | EPOLLPRI;
每次有一批事件返回,经过统计
返回的一批fd数量=出错关闭的fd数量+由EPOLLIN转为EPOLLOUT的fd数量+EPOLLOUT正常处理关闭的fd的数量。 也就是说,每批事件都完全处理,没有遗漏。
观察发现EPOLLET | EPOLLERR | EPOLLHUP 这3发事件的发生率为0。
但fd却成增大趋势。以前那写较小的fd在经历一段时间后渐渐丢失,不再可用。
请问fd都丢失到哪里去了?
-----------------------------------------------------------------------
后来经常有人写信问我这个问题,我在帖子里回复过,好象帖子太多了,不好找,还是写在这里吧。
单纯靠epoll来管理描述符不泄露几乎是不可能的。
完全解决方案很简单,就是对每个fd设置超时时间,如果超过timeout的时间,这个fd没有活跃过,就close掉。
EPOLLIN | EPOLLET | EPOLLERR | EPOLLHUP | EPOLLPRI;
每次有一批事件返回,经过统计
返回的一批fd数量=出错关闭的fd数量+由EPOLLIN转为EPOLLOUT的fd数量+EPOLLOUT正常处理关闭的fd的数量。 也就是说,每批事件都完全处理,没有遗漏。
观察发现EPOLLET | EPOLLERR | EPOLLHUP 这3发事件的发生率为0。
但fd却成增大趋势。以前那写较小的fd在经历一段时间后渐渐丢失,不再可用。
请问fd都丢失到哪里去了?
-----------------------------------------------------------------------
后来经常有人写信问我这个问题,我在帖子里回复过,好象帖子太多了,不好找,还是写在这里吧。
单纯靠epoll来管理描述符不泄露几乎是不可能的。
完全解决方案很简单,就是对每个fd设置超时时间,如果超过timeout的时间,这个fd没有活跃过,就close掉。
- epoll模型的使用及其描述符耗尽问题的探讨
- epoll模型的使用及其描述符耗尽问题的探讨
- 文件描述符被耗尽问题排查
- MINA2的多线程模型问题探讨
- MINA2的多线程模型问题探讨
- 文件描述符存在形式及其dup2函数的使用
- Linux的EPoll模型
- 封装的EPOLL 模型
- Linux的EPoll模型
- Linux的epoll模型
- Linux的epoll模型
- Linux的epoll模型
- Linux的epoll模型
- Linux的epoll模型
- Linux的epoll模型
- Linux的epoll模型
- Linux的epoll模型
- 使用doctrine的内存耗尽解决办法
- Shell游戏-贪吃蛇(牛)
- HashSet和HashMap的关系
- 缓冲输出
- 记录我的新工作(八)
- Android GradientDrawable类的详解,设置activity的背景颜色渐变效果
- epoll模型的使用及其描述符耗尽问题的探讨
- django 自定义 字段类型
- STM32 + SDIO + FATFS 调试记录
- 从泄密门分析中国网民习惯
- mhtml5.com举办的HTML5游戏大赛入围作品名单
- c# switch中使用goto
- c#winform DatagridView使用总结
- 项目试验的小demo-关于画布上动态显示一张图片的一部分
- 递归,迭代还是其他?