tonardo做web服务器播放大视频内存泄露问题的解决
之前为了实现websocket来完成网页的推送,所以使用了tonardo作为web服务器。但是如果网页中含有视频插件的话,特别是经常要播放大视频的话,在linux环境下,经常发现
python进程会莫名其妙的死掉。通过内存检测命令动态查看,发现python进程的内存占用一直居高不下,并且需要启用缓存才行。直到python自动被os干掉。
后来把python版本升级到3.3,tonardo也升到了最新版本,情况稍微缓解了些。但还是没有解决问题。
于是借鉴常规网站图片和网页分离,用专用的图片服务器来提高网站性能的思路的借鉴,同时也考虑到tonado可能在 异步大并发通信上是优势。但是在多媒体承载方法可能存在固有的先天不足。所以考虑用更专业的静态服务器来替代。因为都是静态内容,具体考虑了4个:apache,lighttpd,nginx,Cherokee .经过测试nginx在高并发下内存占用的优势明显。
所以决定采用它。而且nginx 在windows和linux下的安装和配置都非常方便。
只要把视频的文件夹路径作为nginx的root 的路径在conf文件中配置一下就可以了。 结果 8G的视频文件播放几十个小时,一直比较流畅。没有出现内存泄露问题。
这个可以作为一个大视频播放的思路给大家参考一下。