FMS配置小结

官方链接:http://help.adobe.com/en_US/flashmediaserver/configadmin/WS5b3ccc516d4fbf351e63e3d119f2925e64-8000.htmlhtml

FMS服务器将应用划分为四个层面:Server/Adaptor/Vhost/Applications,Server在最高层,能够包含多个Adaptors,每一个Adaptors能够包含多个Vhost,每一个Vhost能够包含多个Application,每一个Application能够包含多个Instance;缓存

Adaptor能够指定IP和Port,组织Vhost
Vhost相似配置在一台服务器上的多个站点
Application配置每一个FMS应用,好比live、vod、livepkgr等服务器

能够复制_defaultRoot_来生成新的Adaptor,此时须要配置新目录下的Adaptor.xml的HostPort的值此时若是要登陆admin console来管理新的Adaptor,则须要在原登陆名加新Adaptor的名字,好比XXX/fuland539,密码保持不变;也能够复制_defaultVHost_来生成新的Vhost,此时须要配置新目录下的Vhost.xml的AppsDir的值指定Application的目录;网络

录制视频须要管理缓存,当试图访问一个流内容片断时,服务器会先优先检查缓存,若是缓存存在,那么将把请求指向这个缓冲空间的流来播放,若是缓存不存在,服务器将从存储上请求这个源,并放入缓存,只有重新的缓存给用户播放流;在fms.ini中配置SERVER.FLVCACHE_MAXSIZE,默认是500MBytes,这个数值直接关系到经过服务器可以发布视频流的数量,该设置不会影响到直播,直播流不须要操做服务器缓存app

流内容在网络上传输会被分解成数据块,针对RTMP,能够设定其传输数据块的尺寸,数值大会下降服务器的CPU占用,可是会影响带宽接入用户的流畅性,而且数值越大,须要用户有越快的带宽接入;在Application.xml中设置OutChunkSize,默认是4096bytesless

某些状况下,服务器会在发送消息前将其聚合,这样能够下降CPU占用,增长服务器性能;在Application.xml中设置AggregateMessages,默认是开启的性能

在广播一路直播流时,能够进行音频采样整合,可是若是已经打开直播的聚合消息设置,则不能合并音频采样,
须要在fms.ini中配置以下选项:
1)APP.SUBSCRIBERS 超过这个参数数值的用户订阅一路流,音频采样将被合并,默认为8,若是须要提高直播流的性能,能够将值设置为1
2)APP.COMBINESAMPLES_LOCPU 若是CPU占用低于这个值,合并不进行,默认为60,若是须要提高直播流的性能,能够将值设置为1
3)APP.COMBINESAMPLES_HICPU 若是CPU占用高于这个值,进行合并,默认为80,若是须要提高直播流的性能,能够将值设置为1
4)APP.COMBINESAMPLES_MAXSAMPLES 合并几路到一路,默认是4,若是须要提高直播流的性能,能够将值设置为83d

某些时候,为了视频流的流畅,须要限制每个监听器每秒能够接受的最大用户请求,监听器能够在Apaptor.xml的HostPort里进行配置,每一个配置的服务器端口用来表示为一个监听器,0或-1表示禁用该功能;能够在Server.xml中配置<RTMP><Edge>下的<MaxConnectionRata>的值,默认是10调试

某些场景用户在一个应用上长期不进行操做,为了声明这些资源位新的活跃用户可用资源,服务器能够关闭这些空闲链接,此时,客户端会相继收到NetConnection.Connect.Idle和NetConnection.Connect.Colosed,并在服务器端写LOG;能够在Server.xml、Vhost.xml和Application.xml中配置:
<AutoCloseIdleClients enable="true">
<CheckInterval>60</CheckInterval>
<MaxIdleTime>3600</MaxIdleTime>
</AutoCloseIdleClients> 视频

在FMS启动的时候,会开四个进程FMSAdmin、FMSCore、FMSMaster和FMSEdge:
1)FMSAdmin用于支持admin console,管理服务器
2)FMSEdge用于支持Edge服务器的相关工做
3)FMSMaster用于监控,在必要时启动FMSCore进程,只能有一个master,有多个core
4)FMSCore用于实际干活,他的数量受系统内存的大小限制,通常不超过100个
为了配置一个进程的做用域,能够在Application.xml的Scope标签中分配core进程的级别,应用能够单独运行在一个进程中,
也能够与其余应用实例共存于一个实例中,他包括如下选择:
1)adaptor:一个adaptor下的全部实例共用一个进程
2)vhost:在一个vhost下的全部应用共用一个进程,默认值
3)app:在一个应用下的全部实例共用一个进程
4)inst:每一个应用实例拥有本身的进程,提供了最好的应用隔离体制,最适合于VOD点播的stateless无状态模式加入<Distribute numprocs="3">inst</Distribute>表明将实例分配给3个core进程,其值不能超过40,而且每一个core进程最小内存不能小于100MB,理论3到11最佳,其值为client/vhost/app/inst;还能够加入<MaxCores>来指定core进程的最大数量;还能够加入<RollOver>来指定每一个进程运行的时间(s),到一个core到达生命周期,任何新的链接将转向一个新的core进程,到期的进程还继续服务器旧链接,直到链接不关闭,举例:
<Process>
<Scope>app</Scope>
<LifeTime>
<RollOver>3600</RollOver>
<MaxCores>3</MaxCores>
</LifeTime>
.......
</Process>
还有<MaxFailures>标签,表明容许进程失败的最大容忍数量,达到这个数量,core进程将被master进程关闭后重启;当被关闭后,在等到<RecoveryTime>延迟后,master会重启并恢复进程,若是设置为0将不会检查进程失败

Administration Console必须指定一个特别的调试链接来得到播放流及得到共享对象数据,默认是不容许开放这个链接的,须要配置Application.xml:
<Debug>
  <MaxPendingDebugConnections>50</MaxPendingDebugConnections>
  <AllowDebugDefault>false</AllowDebugDefault>
</Debug>

 

若是要在Application.xml中加入新属性,须要在JSEngine标签里面建立一个XML标签,属性命名须要响应对应的标签的名字,属性值对应标签的值,举例;
<Application>
<JSEngine>
<config>
<user_name>jdoe</user_name>
<dept_name>engineering</dept_name>
</config>
</JSEngine>
</Application>
这样,从服务器端AS去访问这些属性,使用下面的语法:
application.config.prop_name 或 application.config["prop_name"],好比:
application.config["user_name"] 或 application.config["dept_name"]

 

经过配置可让服务器检测客户端带宽,他是经过向客户端发送一系列的数据包来实现的,发送的数据包依次增大;若有必要,能够配置发送数据包的大小、比率以及发送持续时间;在Application.xml中配置以下:<BandwidthDetection enabled="true"><MaxRate>-1</MaxRate> <DataSize>16384</DataSize><MaxWait>2</MaxWait></BandwidthDetection>

相关文章
相关标签/搜索