一种高效流媒体电影服务器的设计
流媒体服务器面对一个单一的客户,完成的过程如下:
1)在客户端发出RTSP连接请求后,服务器通过对TCP端口的监听,读入请求。
2)解析请求内容,调入相应的流媒体文件。
3)形成RTP包,分发数据流包,获得RTCP包。
4)数据包发送完毕,关闭连接。
上述过程如果采用传统的服务器设计方法实现,一般的办法是用一个线程不断的读入用户的连接请求,然后将这些请求分派给其它的工作线程,这些工作线程则分别循环往复的完成以下的工作:
1)解析请求内容。
2)发送RTP包,发送接收RTCP包
3)判断数据发送完毕,关闭连接。服务器的结构如图3所示。
操作系统在对流媒体服务器的功能实现上采用以应用进程(线程)为中心的系统资源管理方式。操作系统采用虚拟内存方式,应用程序的虚拟内存空间映射到物理内存,物理内存与CPU之间有Cache。当流媒体数据从磁盘上到网络上进行传递时,要在不同的系统空间中进行多次传递拷贝,如图4所示。
图4显示了磁盘数据到网络接口的传递路径:首先,数据对象从磁盘拷贝到内存中,然后,数据在内存中由于每个工作线程的空间不同,进行空间拷贝,即从核心空间拷贝到进程空间,接着,数据再从进程空间拷贝到核心空间,最后数据再拷贝到网络上。由于流媒体数据要经过RTP的打包处理,因此,数据在拷贝到网络上之前,还要拷贝到Cache,再从Cache中拷贝到CPU寄存器,进行打包处理。
从图3可以看出,随着工作线程数n的增大,系统在各线程之间的切换开销将急剧增加,从操作系统的角度来看,由于每个线程都涉及对硬盘视频数据的读取,各自独立的线程越多,对硬盘读写的数据量就越大,数据在不同空间的拷贝增加,操作系统将不断的进行页面切换,服务器的性能随着客户连接数的增多,效率将急剧下降。
- 上一篇:代理服务器是如何工作的
- 下一篇:“无法浏览网页” 十招解决疑难杂症
- 京东不带https的页面被qutaobi劫持
现在京东网站大多数页面都是自动打开https,安全链接,比较好。但有的时候也会打开不...
- 微信使用知识介绍 微信段子分享
一起过帮大家整理了有关微信的相关知识,一起了解下吧!...
- 天猫积分有效期及用处介绍
经常网购的朋友们应该很清楚啦,天猫积分的获得一般是你在天猫商城里面购物的时候,等...
- 微信公众号怎么申请 流程方法介绍
虽说微信公众号已成为企业、商家必不可少的一项营销手段,但很多人对于如何创建公众号...
- 限时玩玩烧脑游戏有益大脑提高脑力
限时玩玩烧脑游戏有益大脑提高脑力 电子游戏的本质之一是“主动学习”,它...
- 做微商有没有技巧?朋友圈营销心得
做微商首先要学会玩朋友圈,熟识你的人多了,才能慢慢推广业务。一般搞笑类说说浏览量...