版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、如何解决流媒体服务器的缓冲问题,启用多个Helix Server的方法 来源: ChinaUnix博客 日期: 2008.08.13 23:09(共有0条评论 我要评论 Helix主要跟这几个方面有关 1 服务器cpu 至强显然要比p4好,就算你看cpu利用率不到1% 2 服务器内存 内存越大越好,最好ecc内存,因为普通内存过大的流量可能造成丢包. 3 HelixServerv的问题,破解不完美,你换个版本看看.实际也是破解版出问题最多. 4 网卡的问题,如果做流媒体服务,建议使用100M的服务器专用网卡,1g的更好,但是如果是便宜货实际效果不如100M比如 tp-link的千兆卡就是个典型
2、的泼子.使用一块3COM的卡会让你省很多心. intel的也不错,d-link的也可以,就是别凑合用tp-link的,8139的做服务器不行.容易假死,容易丢包. 5 解决方法.实际破解版的HelixServer不能完全发挥一个服务器的作用,你可以在一个机器上装2-3个HelixServer来达到平衡的目的, 附: 单机架设多HELIX SERVER服务 一:进入系统盘 c:HELIX SERVER 复制rmserver.cfg三份,再把复制的四份rmserver.cfg重命名为 rm1 , rm2 , rm3 。 二:用记事本打开rmserver.cfg,看到里面的一段话如下: Var RT
3、SPPort="554" Var PNAPort="7070" Var HTTPPort="8080" Var MMSPort="8880" Var MonitorPort="9090" Var AdminPort="20001" 我先来解释一下这段话的含义,有象朋友实在不象话了,一点也不懂的。言归正传 Var RTSPPort="554"-rtspr 播放端口为554 Var PNAPort="7070"-pnm 播放端口为7070
4、Var HTTPPort="8080"-http 播放端口为8080 Var MMSPort="8880"-mms 播放端口为8880 Var MonitorPort="9090"-远端监视端口为9090 Var AdminPort="20001"-Helix Server Administrator管理端口为20001 三:用记事本打开rm1作以下修改: Var RTSPPort="554"改为Var RTSPPort="555" Var PNAPort="707
5、0"改为Var PNAPort="7071" Var HTTPPort="8080"改为Var HTTPPort="8081" Var MMSPort="8880"改为Var MMSPort="8881" Var MonitorPort="9090"改为Var MonitorPort="9091" Var AdminPort="20001"改为Var AdminPort="20002" 依次类推改rm3,甚
6、至可以是rm4,rm5,这得看你自己的服务器性能 朋友们可以看出来,我作的修改目的就是不让这些端口相同,不然,就会造成端口冲突-错误1067 五:接下来我们让这些增加的HELIX服务和默认的那个一样,随系统启动,不然手工启动太烦了: 开始-运行-(写入:)cmd-确定:打开了DOS窗口,出现的是c:> 我下面开始写命令了,如果你还看不懂,我看你没有必要再来问我,回家种田去吧。 c:cd helix server(回车) c:helix servercd bin c:helix serverbin>rmserver -install:rm1 "C:helix serverr
7、m1.cfg" (回车) 如果成功,那么系统返回消息应该是:Successfully installed the r m1 Service. 六:修改注册表: 开始-运行-(写入:)regedit-确定:打开了注册表 找到HKEY_LOCAL_MACHINESYSTEMControlSet001Services找到rm1 rm1下有一个值StartupParams。数据为C:Helix Serverrm1.cfg 加上引号,改成"C:Helix Serverrm1.cfg" 然后到控制面板-管理工具-服务。找到rm1,启动他,绝对能用了 依次类推可以让rm2,rm
8、3也随系统启动 配置多个加载点. 换linux系统可以明显改善性能!强烈推荐! 总结一下,服务器必须有一个好的网卡!强烈建议用3com的! 内存需要大 cpu依赖不太明显,但是越高越好. 不要在rm服务器上开任何服务,iis,ftp都是杀资源的大户!特别是asp,分个别的机器装上. 不要在服务器上开qq,开网站 ,开下载等等,服务器做好后就要一直保持锁定状态! 经常整理硬盘!不要有碎片!这个是杀手! 另外,你把rmvb超过450k的压成250-350k会效果显著,即使你不做任何优化也不会卡了,但是画面就. 装real10 把连接改为10M 一、如何安装多个服务 参考 lucian (hyne
9、的 单机安装多个helix server全攻略 首先复制上述的配置文件,用文本编辑器修改各个端口设置,如果你想多个,那么另存为多个名称不同的配置文件。然后注册系统服务:cmd下转到 .bin目录 运行:rmserver -install:rm1 "你的实际路径rm1.cfg" ,其中rm1是你命名的服务名称,可以按你的意愿取名。 返回消息应该是Successfully installed the rm1 Service。如果想再安装rm2 service按照同样的方法完成。你可以在DOS启动这个新服务:rmserver.exe rm2.cfg。 Real公司还提供了一种方法
10、: 先执行 rmserver.exe -import:rmReg2 rm2.cfg 导入注册表,再执行 rmserver.exe -install:rm2 "rmReg2" 注册服务,用rmserver.exe registry:rm2 来启动服务。我个人认为这个比较麻烦,还不容易修改,不推荐。 最后在服务管理里能发现新添加的rm1 . 服务,修改其属性为自动启动,这样每次重新启动机器,服务都会自动运行的。 提示: rmserver -install:rm1 "?",如果这个路径不包含空格,就可以直接启动了。如果含有空格,你需要进入注册表,搜寻rm1.c
11、fg这样的关键字,修改StartupParams项,检查其路径是否与你实际的一致,路径如果有空格,一定要把引号加上,如: "C:program filesrealhelixServerrm1.cfg" 。建议大家都要检查这一项,因为有时比如RealServer8.x就写个错误的路径在那里,所以总有人说RealServer8.0不行,其实你把注册表修改对了就可以了。 各个rmx.cfg中的端口不能相同,否则会发生端口冲突,造成无法启动服务,这也是许多人初次尝试失败的原因。我的经验是先对首个服务进行全面的配置,如加载点,IP限制等等,然后再复制这个配置文 件,这样不仅能快速配置
12、其它服务,而且也能保证配置的同步性。 二、有效性 大多数人经过试用都表示有效,但也有如xxzHou就表示没有效果,他启动了4个服务,120以上时,客户端就出现缓冲,"而改用http方式时,此服务器可以提供600-700不缓冲播放500k左右的电影",对于引号中的声明我感到怀疑。首先我声明,这个方法是有效的,是我通过实践总结的。 首先你要确认你的机器是否有余量,例如我的60人时缓冲,此时CPU使用率只有10%,内存也绰绰有余,这时启动多服务是有效果的。但服务不是越多越好,2-4个为好,这时CPU能到50-60%,这时的负荷已经很重了,能在40-50%是最好的。另外客户端的机器
13、和软件状态不佳,也是造成缓冲的重要原因,还有你是否真正做到了服务平衡。 我也发现不是所有的机器效果都明显,尤其是播放高带宽,如400-500k以上的,所能承受的人数急剧下降。带宽也是原因100M带宽的理论值是多少?不好说,还有收发器、交换机都能达到100M?我们没有有效的手段检验,专业性的仪器太贵,承受不起。但我知道原以为那些光纤收发器都是高科技产品,其实小厂都能生产,两三百元就能买到,而且质量良莠不齐,我们多次发现因为收发器性能下降造成实际带宽的下降。 我鋈巳衔桨僬卓赡苤荒芊?0-80M能力,这样你算算多少人?200多人的在线吧,如果你还同时通过这条线路提供网页、游戏等其他服务,可能打的折扣
14、多了。上面说的"600-700不缓冲播放500k左右的电影",这时带宽多少呀?百兆是不可能的,只有是千兆网,这样的话是否全部通道都是千兆了? 题外话,电信内部人员最终承认,发现1M的ADSL只能看225k的电影,2M看350k的,因为当别人报告缓冲时,他们用8M的看,结果一切正常,我猜测这可能是ADSL交换那儿不太好,不过谁敢对电信指点一二呀!所以具体说来这是个系统的综合问题,不能片面地钻一个地方。总之我是把服务器的性能发挥到极限了,剩下的只能看天命了。 采用http是不错,我一度也曾采用这个办法,结果开始不错,当人数上来后就不行了。且人家能高速下载了,而且一旦稍有缓冲大家
15、都开始下载,http不好限制线程,结果更拥挤更累机器,最终还不如流播放。另外中途中断了不能接续,拖放也不自如,还是不用为好。 我个人认为是rm的服务软件的效率不行,至于版本估计美金买的也好不了哪去,要是D和正之间有这么大的差距,就不会打击D版了,这是多好的广告呀。目前为止我比较了周围的流媒体服务情况,在相同的硬件条件下,我这个是最好的。当然还有许多不满意的,所以才公开经验,希望有更 好的建议和方案出现。 通常流媒体服务器都是专用的,所以封闭全部不需要的端口,防止黑客攻击,我的就被攻击过。关闭不需要的服务,尽量释放系统资源,你可以尝试着关,只要不影响运行和服务的都关掉。我认为不要装防火墙、杀毒软
16、件等这些软件,这些都涉及系统内核操作,消耗的资源不知道有多少。既然是服务器,你不会在上面玩游戏、看网页的,不存在感染病毒的途径。网友 quake777 称他的小服务器,不小心装了个瑞星防毒,HAHA,25人联线就缓冲了。换了个诺顿企业版,最高40人联线时还跑得疯快,说明这些软件是有影响的。 三、关于Real官方的冗余和动态负载平衡 关于Helix的冗余,不知大家仔细看过,它需要多台Helix服务器,这个好办,机器不缺。但你的内容加载点呢?我将近1T的资料,3台Helix服务,需要额外2T的内容空间,而且还要保证同步,我看是比较麻烦的。如果我真的有,我也会拿来增加内容,而不是做冗余。楼上还有一位
17、说的DNS动态平衡也是针对多台Helix服务而言,通过DNS来分配不同的机器来提供服务。 当然你可以使用专用的磁盘阵列,这也是Helix图例里表明的,多个Helix服务器共享这个阵列,通过DNS分配或其它方式均衡这些服务器,平衡服务。可是投资呢?不用说专用阵列了,单SCSI硬盘大家就知道有多贵了。要知道多数人的服务都是免费的,好多都是个人爱好者,像我一样,用普通微机做服务器,且没有发现IDE硬盘是瓶颈。那些专业的配置就不用考虑了吧。而且大家也看到讨论的,那些2个CPU的专业服务器 120人就缓冲了,赶不上我5000元2台服务器的(显示器不用的啦,远程控制的,呵呵,你们说呢? 我的关键是一台机器
18、,进行多个进程的同时服务,是尽力发挥一台机器的能力,和Real官方的说法是两个不同的概念。 四、端口平衡 hyne 的算法挺好: Randomize rndcount=Int(Rnd*3 if rndcount=0 then response.write "pnm:/*.*.*.*:7070"+url end if if rndcount=1 then response.write "pnm:/*.*.*.*7071"+url end if if rndcount=2 then response.write "pnm:/*.*.*.*:7072
19、"+url end if 我是采用编程,主要涉及以下内容,相关人员一看就会懂的。 首先设置服务的数量和端口,在web.config中: 程序自动寻找HelixPort、WebPort和FTPPort加上递增的序号,直到找不到为止,如寻找到HelixPort3或WebPort2,发现不存在就终止。后面的值是我自己设定的格式,是名称加端口。程序会自动把HelixPort1的端口作为一组统计,同时把所有Helix类型的也统计在一起,这样提供给网页能实时反映在线人数,及其分布。最后有一个这样的结构数组,端口号,不会出现重复的组 别,指Helix1,FTP1这类类别,指Helix、Web这样的
20、大类。 Public Structure moviePortDefine Dim TCP_port As Integer "端口号 Dim GroupID As Integer "分类索引 Dim GroupName As String "分类名称 Dim Cnt As Integer "在线人数 Dim TypeID As Integer "端口序号 End Structure 然后有个程序对各个端口进行扫描: Dim p As New Process( p.StartInfo.FileName = "netstat.exe&quo
21、t; p.StartInfo.Arguments = "-n" p.StartInfo.UseShellExecute = False p.StartInfo.RedirectStandardOutput = True p.Start( "执行了 netstat.exe -n 命令 Dim output As String = p.StandardOutput.ReadToEnd( p.WaitForExit( Dim ss( As String = output.Split(vbCrLf Dim ssTcp( As String Dim i, j, k As Long For i = 1 To ss.GetUpperBound(0 "寻找ESTABLISHED,表示建立连接的端口 If InStr(1, ss(i, "ESTABLISHED", CompareMethod.Text > 0 Then k = InStr(ss(i, ":" I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆大学课程设计仿真图
- 二零二五年度橘子种植基地承包与农产品出口协议3篇
- 二零二五年度美发店设备更新换代及技术升级合同4篇
- 2025年度新型节能门窗安装承揽合同范本3篇
- 2025年项目咨询管理合作协议范本详解3篇
- 二零二五年度酒店客房门锁更换与升级服务合同4篇
- 2025年校车照管员岗位责任与风险防控合同2篇
- 二零二五年度民用航空运输合同服务质量提升方案4篇
- 二零二五年度模板木枋行业创新发展基金合作合同4篇
- 2025年度高校教学楼租赁合同及智能化教学系统建设3篇
- 2022年湖北省武汉市中考数学试卷含解析
- TLFSA 003-2020 危害分析与关键控制点(HACCP)体系调味面制品生产企业要求
- LY/T 2244.3-2014自然保护区保护成效评估技术导则第3部分:景观保护
- 纪律教育月批评与自我批评五篇
- GB/T 26480-2011阀门的检验和试验
- GB/T 13342-2007船用往复式液压缸通用技术条件
- 药店员工教育培训资料
- GB 20371-2016食品安全国家标准食品加工用植物蛋白
- 【英语手写体】26英文字母手写体描红书写字帖
- 实习护生压疮相关知识掌握情况及预防态度的调查问卷
- 《骆驼祥子》第(9、10、11、12)章检测题
评论
0/150
提交评论