开源流媒体服务器EasyDarwin支持epoll网络模型,大大提升流媒体服务器网络并发性能
来源:互联网 发布:windows 10安装软件 编辑:程序博客网 时间:2024/05/18 00:58
经过春节前后将近2个月的开发和稳定调试、测试,EasyDarwin开源流媒体服务器终于成功将底层select网络模型修改优化成epoll网络模型,将EasyDarwin流媒体服务器在网络处理的效率上提升到了另一个档次(这里得感谢EasyDarwin开源团队成员Fantasy的无私贡献,是他牺牲宝贵的业余休息时间,连夜奋战开发和调试,才能取得EasyDarwin底层改造的成果)。
众所周知,select模型在处理大并发量的网络请求上具有一些瓶颈,默认在Linux上同时能够处理的网络连接数FD_SETSIZE为1024,虽然可以通过修改FD_SETSIZE的定义大小,但在FD_SETSIZE大于1024时,由于select模型先天的原因,对网络事件无法做到及时准确定位,其处理性能上并没有得到同步的提升,所以,带来的就是整个流媒体服务器在并发量上的瓶颈;而修改成epoll网络模型之后,其网络事件的处理性能得到提升,再加上EasyDarwin架构上的优势,采用线程池,任务队列及Reactor技术,使得网络事件能够非常高效地被感知、处理(这里的任务队列还涉及到一个无锁队列的优化,这个在后续的博客中会具体分析),这样,使得整个EasyDarwin流媒体服务器具有非常高效的事件处理能力,而且经过长时间的测试,稳定性非常好!
需要说明的是,EasyDarwin在Windows端还是沿用的select网络模型,从目前的情况上来看,大并发量需求的项目多数部署在Linux系统上,Windows上EasyDarwin作为小规模或者研究型项目,完全能够满足需求,所以,将EasyDarwin+IOCP列入以后的开发计划中;
Epoll模型主要的代码在EasyDarwin Github上,目录位置在:https://github.com/EasyDarwin/EasyDarwin/tree/master/CommonUtilitiesLib,主要文件是:epollEvent.h和epollEvent.cpp
EasyDarwin开源流媒体服务器项目还在一直进行更加高性能的优化,项目地址:https://github.com/EasyDarwin
关注EasyDarwin开源项目:
WEB: www.easydarwin.org
Github: https://github.com/easydarwin
- 开源流媒体服务器EasyDarwin支持epoll网络模型,大大提升流媒体服务器网络并发性能
- 开源流媒体服务器EasyDarwin支持epoll网络模型,大大提升流媒体服务器网络并发性能
- 开源流媒体服务器--EasyDarwin
- EasyDarwin开源流媒体服务器将select改为epoll的方法
- EasyDarwin开源流媒体服务器支持basic基本认证和digest摘要认证解析
- EasyDarwin开源流媒体服务器支持basic基本认证和digest摘要自定义认证
- EasyDarwin开源流媒体服务器高性能设计之无锁队列
- EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计
- EasyDarwin开源流媒体服务器性能优化之Work-stealing优化方案
- EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计
- EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计
- EasyDarwin开源流媒体服务器内存管理优化
- vs2015编译EasyDarwin开源流媒体服务器Linux版本调研
- [转载]EasyDarwin开源流媒体服务器内存管理优化
- vs2015编译EasyDarwin开源流媒体服务器Linux版本调研
- EasyDarwin开源流媒体服务器Work-stealing优化方案
- 开源流媒体服务器
- EasyDarwin开源流媒体服务器gettimeofday性能优化(3000万/秒次优化至8000万次/秒)
- Xcode中单例的模拟和APP的启动过程
- cin gets getline cin.get等输入的区别
- Android Studio2.0 gradle同步问题
- 网络编程第一篇之Select模式
- Linux内核加载与卸载
- 开源流媒体服务器EasyDarwin支持epoll网络模型,大大提升流媒体服务器网络并发性能
- 求1+2+3+4+....+100
- 黑马程序员—关于java反射机制
- 单例模式的使用场景
- 操作系统之任务管理(未完成)
- POJ 3468 A Simple Problem with Integers
- androidstudio中androidannotations框架的配置
- Android Studio-SVN代码下载,提交,冲突解决方案
- 循序渐进学java基础笔记(2)——JDK的安装和配置