CN101431475A - 高性能的流媒体服务器的设置以及进行高性能节目读取的方法 - Google Patents
高性能的流媒体服务器的设置以及进行高性能节目读取的方法 Download PDFInfo
- Publication number
- CN101431475A CN101431475A CNA2008102342671A CN200810234267A CN101431475A CN 101431475 A CN101431475 A CN 101431475A CN A2008102342671 A CNA2008102342671 A CN A2008102342671A CN 200810234267 A CN200810234267 A CN 200810234267A CN 101431475 A CN101431475 A CN 101431475A
- Authority
- CN
- China
- Prior art keywords
- program
- cache
- session
- work
- progress
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明涉及高性能流服务器的设置方法,流服务器由核心流服务模块和工作进程模块构成,所述的核心流服务模块在系统级实现微内核流服务和调度服务,所述的工作进程模块在用户级实现节目Cache和读取、业务应用扩展:所述核心流服务模块,实现微内核流服务和调度服务;所述微内核流服务,实现流协议,实现会话服务,管理会话的所有流协议,提供会话的请求和应答等功能;所述调度服务,实现会话管理,实现节目管理,实现工作进程管理。本发明流服务器机器性能利用均衡,并发性能高,节目读取吞吐性能高,磁盘访问率低等优点。
Description
技术领域
本发明属于网络通讯技术领域,涉及一种高性能的流媒体服务器和一种可以进行高性能节目Cache的方法。
背景技术
当前流行的单台流媒体服务器性能不是很好,一个是并发能力不强,机器CPU性能越来越强时,性能不能得到很好体现;另一个是节目没有很好Cache,导致Cache命中率偏低,当终端用户请求节目时,临时到硬盘取数据,频繁读取硬盘,导致读取节目性能不高,进而会影响流服务器的性能。
发明内容
本发明针对现有技术中存在的不足之处,提出一种高性能的流媒体服务器以及一种高性能节目Cache的方法。通过多工作进程提高并发性和稳定性,本发明目的还在于:通过采用分等级的节目Cache算法和根据块热点排名的分块Cache算法,通过高性能节目Cache,提高Cache命中率,减少节目直接从硬盘读写几率。
本发明是通过以下技术方案实现的:
一种高性能流服务器的设置方法,流服务器由两个模块构成,核心流服务模块、工作进程模块,所述的核心流服务模块在系统级实现微内核流服务和调度服务,所述的工作进程模块在用户级实现节目Cache和读取、业务应用扩展。流服务器由核心流服务模块和工作进程模块构成,所述的核心流服务模块在系统级实现微内核流服务和调度服务,所述的工作进程模块在用户级实现节目Cache和读取、业务应用扩展:
所述核心流服务模块,实现微内核流服务和调度服务;所述微内核流服务,实现流协议,实现会话服务,管理会话的所有流协议,提供会话的请求和应答等功能;所述调度服务,实现会话管理,实现节目管理,实现工作进程管理;
所述调度服务的会话管理,它包括:
1)会话注册和注销,管理所有的会话;
2)会话投递,根据会话请求的节目,通过节目管理调整分配节目状态,再通过工作进程管理分配工作进程,投递会话到相应的工作进程的任务处理队列;
所述调度服务的节目管理,节目管理通过节目热点统计,根据节目热点排行,通过一种高性能节目Cache的方法,提供高性能节目Cache,提高Cache命中率;它包括:1)节目状态管理,记录系统所有节目的状态和在各个工作进程中分布;
2)节目访问统计,根据节目访问记录,统计节目访问热点;
3)节目Cache调整,根据节目访问热点统计,使用高性能节目Cache的方法,调
整节目Cache,同时记录节目所有分块的状态和内存Cache分布;
所述调度服务的工作进程管理,它包括:
1)工作进程监控与管理,管理工作进程的启动,回收,状态监控;
2)工作进程资源管理与分配,管理每个工作进程所有的资源(会话,节目Cache,分块Cache)状态,进行资源分配工作,如果某个工作进程的某种资源到达上限,就需要调度分配新的工作进程或者分配资源到其它工作进程中或转移资源到其它工作进程中,通过会话管理和节目管理投递会话任务或Cache任务;
所述工作进程模块,它包括:
1)任务队列管理,管理任务队列,接收任务和处理任务;
2)节目Cache和读取,根据核心流服务模块的调度服务的节目管理的节目和块Cache调整任务,进行Cache调整,同时节目读取时先从Cache中查找,如果找到,直接内存读取,如果没有找到,直接磁盘读取;
3)业务应用扩展,如实现身份认证等业务应用;
本发明所述高性能节目Cache的方法,通过采用分等级的节目Cache算法和根据块热点排名的分块Cache算法,提高了节目Cache命中率,提供高性能的节目读取。
所述的分等级的节目Cache算法,根据节目统计得到的节目热点,把节目分为三级,第一级是最热点的节目,节目内容全导入内存,称为全Cache,第二级是次热点节目,节目内容通过分块以一些块导入内存,称为分块Cache,第三级是非热点节目,不进行Cache,称为No Cache,这三级节目状态之间是动态变化的,根据节目热点的变化,可以从第三级变为第二级,第二级变为第一级,也可以从第一级变为第二级,从第二级变为第三级。全Cache算法的实施,和对于分块Cache算法的实施,需要使用海量物理内存,如果内存越多,Cache的块就越多,这样Cache命中率也就越高。
所述的根据块热点排名的分块Cache算法,是实现第二级节目的内部根据分块的热点排名动态调整分块Cache。为第二级的所有的节目分块,建立所有块的热点统计,定期统计,根据块的热点排名,取排名最高的一部分块进行内存Cache。
全Cache算法的实施,需要使用海量物理内存,因为每个节目本身内容就很庞大,需要实现对海量物理内存管理。
对于分块Cache算法的实施,需要使用海量物理内存,如果内存越多,Cache的块就越多,这样Cache命中率也就越高。
对于32位操作系统,每个工作进程的内存使用有2G上限限制,需要使用多个工作进程解决这个问题,为了管理海量物理内存,为了管理多个进程的内存,需要使用系统级模块节目管理,进行调度和分配。
由本发明提供的技术方案可以看出,本发明通过构建两级架构的流服务器,提供多进程并发,同时提供一种高性能节目Cache的方法,达到了我们的目的。
本发明的有益效果是:由本发明提供的技术方案可以看出,本发明通过构建两级架构的流服务器和一种高性能节目Cache的方法,提供多进程并发,同时提供一种高性能节目Cache的方法,提高Cache命中率,提供高性能的节目读取,减少节目直接从硬盘读写几率。达到了我们的目的。
附图说明
图1是本发明的流服务器架构。
图2是本发明工作运行流程图
图3是本发明的的分等级的节目Cache状态转换图。
具体实施方式
本发明的流服务实现采用图1架构。
实施例一:系统构成,系统包括2个模块:核心流服务模块和工作进程模块(参见图1);
1、核心流服务模块包括2个服务模块:微内核流服务模块和调度服务模块;
1)微内核流服务模块它包括2个层:流协议层(下层),会话层(上层)
11)流协议层:接收流请求,发送流应答;
12)会话层:把一个客户的一个流请求的所有相关的多个协议请求和应答组织成一个会话;
2)调度服务模块它包括3个部分:会话管理子模块,节目管理子模块,工作进程管理子模块
21)会话管理:管理会话的注册,注销,投递,微内核流服务的会话层的一个新会话先注册,再根据节目管理和工作进程管理的分配,投递会话到相应的工作进程中,如果是会话已经注册,直接投递会话到相应的工作进程中;
22)节目管理:分3个部分:
221)节目状态管理,建立节目索引库,建立节目的分块索引库,建立节目与工作进程的分布图,建立分块与工作进程的分布图;
222)节目访问统计,进行节目热点统计,进行节目热点排行,进行节目分块热点统计,进行节目分块热点排行;
223)节目Cache调整,根据高性能节目Cache的算法,进行节目Cache和分块Cache调整,查找节目和分块所在的工作进程,把Cache任务投递给相应的工作进程;
23)工作进程管理:
231)工作进程监控与管理,管理工作进程的启动,回收,状态监控;
232)工作进程资源管理与分配,管理每个工作进程所有的资源(会话,节目Cache,分块Cache)状态,进行资源分配工作,如果某个工作进程的某种资源到达上限,就需要调度分配新的工作进程或者分配资源到其它工作进程中或转移资源到其它工作进程中,通过会话管理和节目管理投递会话任务或Cache任务;
2、工作进程模块包括2个功能模块:节目Cache和读取和业务应用扩展模块;
1)节目Cache和读取:根据核心流服务模块的调度服务的节目管理的节目和块Cache调整任务,进行Cache调整,同时节目读取时先从Cache中查找,如果找到,直接内存读取,如果没有找到,直接磁盘读取;
2)业务应用扩展:如实现身份认证等业务应用;
实施例二:本发明工作运行流程,参见图2,其中流请求流程图(数字序列图1~16),Cache调整图(B序列图B1~B3),会话调整图(C序列图C1+8~16)
1终端用户请求流程,流服务器流程
1)终端用户请求流服务,流协议层捕获该请求;
2)流协议层提交请求给会话层;
3)会话层请求会话管理查找当前会话集,如果是新会话,创建新会话来管理该请求,同时到会话管理进行注册,如果不是新会话,就找到所属会话来管理该请求,再把会话提交给会话管理的会话投递模块;
4)会话管理的会话投递模块访问节目管理,得到节目状态;
5)节目管理访问工作进程管理,等待分配合适的工作进程;
6)工作进程管理返回合适的工作进程,节目管理修改节目状态,通知节目管理的节目访问统计模块;
7)节目管理返回合适的工作进程和节目状态,
8)会话管理的会话投递模块投递会话到被分配的工作进程的任务队列中;
9)会话任务处理中心接收会话任务,对会话进行业务处理;
10)会话任务处理中心对会话进行节目读取;
11)节目读取访问节目Cache;
12)节目Cache返回Cache结果,如果没有Cache命中,需要直接读取磁盘数据;
13)节目读取返回节目数据;
14)会话任务处理中心调用会话层应答;
15)会话层调用协议层应答;
16)协议层返回流数据;
2 Cache调整流程
1)工作进程管理根据监控和资源管理,如果发生需要资源转移(非会话资源)的情况,通知节目管理生成Cache任务;
2)节目管理定期调用热点统计,根据统计结果,生成Cache任务,或者根据工作进程管理的请求,生成Cache任务,投递任务到Cache任务队列;
3)Cache任务处理中心,处理相应的Cache任务;
3会话调整流程
1)工作进程管理根据监控和资源管理,如果发生需要会话资源转移的情况,例如工作进程非正常关闭等情况,通知会话投递,重新投递会话到新的工作进程中
2)余下流程就是流请求流程的8)-16)步骤。
Claims (6)
1、高性能流服务器的设置方法,其特征是流服务器由核心流服务模块和工作进程模块构成,所述的核心流服务模块在系统级实现微内核流服务和调度服务,所述的工作进程模块在用户级实现节目Cache和读取、业务应用扩展:
所述核心流服务模块,实现微内核流服务和调度服务;所述微内核流服务,实现流协议,实现会话服务,管理会话的所有流协议,提供会话的请求和应答等功能;所述调度服务,实现会话管理,实现节目管理,实现工作进程管理;
所述调度服务的会话管理,它包括:
1)会话注册和注销,管理所有的会话;
2)会话投递,根据会话请求的节目,通过节目管理调整分配节目状态,再通过工作进程管理分配工作进程,投递会话到相应的工作进程的任务处理队列;
所述调度服务的节目管理,通过节目热点统计,根据节目热点排行,通过高性能节目Cache的方法,提供高性能节目Cache,提高Cache命中率;它包括:
1)节目状态管理,记录系统所有节目的状态和在各个工作进程中分布;
2)节目访问统计,根据节目访问记录,统计节目访问热点;
3)节目Cache调整,根据节目访问热点统计,使用高性能节目Cache的方法,调整节目Cache,同时记录节目所有分块的状态和内存Cache分布;
所述调度服务的工作进程管理,它包括:
1)工作进程监控与管理,管理工作进程的启动,回收,状态监控;
2)工作进程资源管理与分配,管理每个工作进程所有的资源(会话,节目Cache,分块Cache)状态,进行资源分配工作,如果某个工作进程的某种资源到达上限,就需要调度分配新的工作进程或者分配资源到其它工作进程中或转移资源到其它工作进程中,通过会话管理和节目管理投递会话任务或Cache任务;
所述工作进程模块,它包括:
1)任务队列管理,管理任务队列,接收任务和处理任务;
2)节目Cache和读取,根据核心流服务模块的调度服务的节目管理的节目和块Cache调整任务,进行Cache调整,同时节目读取时先从Cache中查找,如果找到,直接内存读取,如果没有找到,直接磁盘读取;
3)业务应用扩展,如实现身份认证等业务应用;
A.分等级的节目Cache算法;B.根据块热点排名的分块Cache算法。
2、根据权利要求1所述的高性能流服务器的设置,其特征是高性能节目Cache的方法,通过采用分等级的节目Cache算法和根据块热点排名的分块Cache算法,提高了节目Cache命中率,提供高性能的节目读取;
所述的分等级的节目Cache算法,根据节目统计得到的节目热点,把节目分为三级,第一级是最热点的节目,节目内容全导入内存,称为全Cache,第二级是次热点节目,节目内容通过分块以一些块导入内存,称为分块Cache,第三级是非热点节目,不进行Cache,称为No Cache,这三级节目状态之间是动态变化的,根据节目热点的变化,可以从第三级变为第二级,第二级变为第一级,也可以从第一级变为第二级,从第二级变为第三级。全Cache算法的实施,和对于分块Cache算法的实施,需要使用海量物理内存,如果内存越多,Cache的块就越多,这样Cache命中率也就越高;
所述的根据块热点排名的分块Cache算法,实现第二级节目的内部根据分块的热点排名动态调整分块Cache。为第二级的所有的节目分块,建立所有块的热点统计,定期统计,根据块的热点排名,取排名最高的一部分块进行内存Cache。
3、根据权利要求1所述的高性能流服务器的设置方法,其特征是终端用户请求流服务,流服务器流程为如下步骤:
1)终端用户请求流服务,流协议层捕获该请求;
2)流协议层提交请求给会话层;
3)会话层请求会话管理查找当前会话集,如果是新会话,创建新会话来管理该请求,同时到会话管理进行注册,如果不是新会话,就找到所属会话来管理该请求,再把会话提交给会话管理的会话投递模块;
4)会话管理的会话投递模块访问节目管理,得到节目状态;
5)节目管理访问工作进程管理,等待分配合适的工作进程;
6)工作进程管理返回合适的工作进程,节目管理修改节目状态,通知节目管理的节目访问统计模块;
7)节目管理返回合适的工作进程和节目状态,
8)会话管理的会话投递模块投递会话到被分配的工作进程的任务队列中;
9)会话任务处理中心接收会话任务,对会话进行业务处理;
10)会话任务处理中心对会话进行节目读取;
11)节目读取访问节目Cache;
12)节目Cache返回Cache结果,如果没有Cache命中,需要直接读取磁盘数据;
13)节目读取返回节目数据;
14)会话任务处理中心调用会话层应答;
15)会话层调用协议层应答;
16)协议层返回流数据;
4、根据权利要求3所述的高性能流服务器的设置方法,其特征是Cache调整流程步骤如下:
1)工作进程管理根据监控和资源管理,如果发生需要资源转移(非会话资源)的情况,通知节目管理生成Cache任务;
2)节目管理定期调用热点统计,根据统计结果,生成Cache任务,或者根据工作进程管理的请求,生成Cache任务,投递任务到Cache任务队列;
3)Cache任务处理中心,处理相应的Cache任务;
5、根据权利要求3所述的高性能流服务器的设置方法,其特征是会话调整流程步骤如下:1)工作进程管理根据监控和资源管理,如果发生需要会话资源转移的情况,例如工作进程非正常关闭等情况,通知会话投递,重新投递会话到新的工作进程中;
2)余下流程就是权利要求3流请求流程的8)~16)步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102342671A CN101431475B (zh) | 2008-11-20 | 2008-11-20 | 高性能的流媒体服务器的设置以及进行高性能节目读取的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102342671A CN101431475B (zh) | 2008-11-20 | 2008-11-20 | 高性能的流媒体服务器的设置以及进行高性能节目读取的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101431475A true CN101431475A (zh) | 2009-05-13 |
CN101431475B CN101431475B (zh) | 2011-03-23 |
Family
ID=40646648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102342671A Expired - Fee Related CN101431475B (zh) | 2008-11-20 | 2008-11-20 | 高性能的流媒体服务器的设置以及进行高性能节目读取的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101431475B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645837A (zh) * | 2009-09-04 | 2010-02-10 | 成都市华为赛门铁克科技有限公司 | 实现负载均衡的方法和装置 |
CN102521043A (zh) * | 2011-12-27 | 2012-06-27 | 广州从兴电子开发有限公司 | 一种任务处理方法及应用系统 |
CN103049559A (zh) * | 2012-12-29 | 2013-04-17 | 深圳先进技术研究院 | 一种海量数据自动放置方法和装置 |
CN106462360A (zh) * | 2014-12-23 | 2017-02-22 | 华为技术有限公司 | 一种资源调度方法以及相关装置 |
CN107483424A (zh) * | 2017-08-07 | 2017-12-15 | 北京金山安全管理系统技术有限公司 | 远程过程调用协议的处理方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1212570C (zh) * | 2003-05-23 | 2005-07-27 | 华中科技大学 | 光盘镜像服务器/客户机的两级Cache系统的实现方法 |
CN100459520C (zh) * | 2005-12-23 | 2009-02-04 | 华为技术有限公司 | 一种多流服务器间共享内存Cache的系统和方法 |
-
2008
- 2008-11-20 CN CN2008102342671A patent/CN101431475B/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645837A (zh) * | 2009-09-04 | 2010-02-10 | 成都市华为赛门铁克科技有限公司 | 实现负载均衡的方法和装置 |
CN101645837B (zh) * | 2009-09-04 | 2012-09-05 | 成都市华为赛门铁克科技有限公司 | 实现负载均衡的方法和装置 |
CN102521043A (zh) * | 2011-12-27 | 2012-06-27 | 广州从兴电子开发有限公司 | 一种任务处理方法及应用系统 |
CN102521043B (zh) * | 2011-12-27 | 2016-12-07 | 瑞典爱立信有限公司 | 一种任务处理方法及应用系统 |
CN103049559A (zh) * | 2012-12-29 | 2013-04-17 | 深圳先进技术研究院 | 一种海量数据自动放置方法和装置 |
CN106462360A (zh) * | 2014-12-23 | 2017-02-22 | 华为技术有限公司 | 一种资源调度方法以及相关装置 |
US10430237B2 (en) | 2014-12-23 | 2019-10-01 | Huawei Technologies Co., Ltd. | Resource scheduling method and related apparatus |
US11194623B2 (en) | 2014-12-23 | 2021-12-07 | Huawei Technologies Co., Ltd. | Resource scheduling method and related apparatus |
CN107483424A (zh) * | 2017-08-07 | 2017-12-15 | 北京金山安全管理系统技术有限公司 | 远程过程调用协议的处理方法和装置 |
CN107483424B (zh) * | 2017-08-07 | 2020-11-10 | 北京金山安全管理系统技术有限公司 | 远程过程调用协议的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101431475B (zh) | 2011-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103605576B (zh) | 一种基于多线程的MapReduce执行系统 | |
CN103856393B (zh) | 基于数据库的分布式消息中间件系统及其运行方法 | |
CN103092920B (zh) | 半结构化数据的存储方法及存储系统 | |
CN101431475B (zh) | 高性能的流媒体服务器的设置以及进行高性能节目读取的方法 | |
CN111225069B (zh) | 一种分布式行情数据处理系统及方法 | |
JP2015537307A (ja) | コンポーネント指向ハイブリッドクラウドオペレーティングシステムのアーキテクチャ及びその通信方法 | |
CN106599711A (zh) | 一种数据库访问控制方法,及装置 | |
CN206775541U (zh) | 分布式游戏服务系统 | |
CN102917077A (zh) | 云计算系统中的资源分配方法 | |
CN103024001A (zh) | 一种业务调度方法与装置及融合设备 | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN102611735A (zh) | 一种应用服务的负载均衡方法及系统 | |
Li et al. | A distributed QoS-constraint task scheduling scheme in cloud computing environment: model and algorithm | |
CN102143237A (zh) | 一种基于网格的互联网内容分发方法和系统 | |
CN101478549B (zh) | 共享内存流媒体服务器的运行方法及其功能模块构架 | |
CN101673272B (zh) | 搜索信息的方法、系统、装置及垂直搜索引擎注册的方法 | |
WO2011127716A1 (zh) | 多线程处理方法和装置 | |
CN100581173C (zh) | 一种视频网格自适应负载均衡调度方法 | |
CN101645837A (zh) | 实现负载均衡的方法和装置 | |
CN109951543A (zh) | 一种cdn节点的数据查找方法、装置及网络设备 | |
CN105094751A (zh) | 一种用于流式数据并行处理的内存管理方法 | |
CN106254561A (zh) | 一种网络资源文件的实时离线下载方法及系统 | |
CN105991481A (zh) | 一种报文转发方法及装置 | |
CN101064715A (zh) | 基于嵌入式系统的p2p技术实现 | |
CN113190528B (zh) | 一种并行分布式大数据架构构建方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110323 Termination date: 20171120 |