FMS配置小结
官方连接:http://help.adobe.com/en_US/flashmediaserver/configadmin/WS5b3ccc516d4fbf351e63e3d119f2925e64-8000.html
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,这个数值直接关系到通过服务器能够发布视频流的数量,该设置不会影响到直播,直播流不需要操作服务器缓存
流内容在网络上传输会被分解成数据块,针对RTMP,可以设定其传输数据块的尺寸,数值大会降低服务器的CPU占用,但是会影响带宽接入用户的流畅性,并且数值越大,需要用户有越快的带宽接入;在Application.xml中设置OutChunkSize,默认是4096bytes
某些情况下,服务器会在发送消息前将其聚合,这样可以降低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,如果需要提升直播流的性能,可以将值设置为8
某些时候,为了视频流的流畅,需要限制每一个监听器每秒可以接受的最大用户请求,监听器可以在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>
FMS配置小结的更多相关文章
- VMware ESXi 配置小结
VMware ESXi 配置小结------------------------------------------------------------------------------------ ...
- Nginx配置小结
前两天区听了一堂Nginx的课,然后翻了一下自己之前的Nginx的笔记,做了一个简单的小结. 全局变量 $args : 这个变量等于请求行中的参数,同$query_string $content_le ...
- 【JBOSS】数据库连接配置小结
数据库驱动位置: %JBOSS_HOME%\server\default\lib目录下. 数据库配置文件位置:JBOSS_HOME\docs\examples\jca\XXXX-ds.xml < ...
- nginx虚拟主机配置小结
nginx的安装在lnmp环境搭建中已经介绍过了,配置文件在安装目录下的conf子目录下,主要主要分成四部分:main(全局设置).server(主机设置).upstream(负载均衡服务器设置).l ...
- nginx+php-fpm的socket配置小结
关于socket的介绍本文不再赘述,生产环境中常用socket方式,本文简述其配置方式. #cd /app/local/php#切换到php安装目录下 #mkdir run #chmod 777 ./ ...
- CentOS下Redis安装配置小结
Redis是REmote DIctionary Server的缩写. 是一个使用 C 语言写成的,开源的 key-value 非关系型数据库.跟memcached类似,不过数据可以持久化. Redis ...
- Nginx支持多站点配置小结
如何配置 web 服务器才能在一个 VPS 上放置多个网站/博客呢?如何通过一个 IP 访问多个站点/域名呢?这是大多数 web 服务器支持的 virtual hosting 功能.即一个IP对应多个 ...
- Hadoop 2.4.1 登录认证配置小结
1.简单模式 这种模式,配置简单,使用简单. core-site.xml添加 <property> <name>hadoop.security.authorization< ...
- ArchLinux安装与配置小结
最近无意间发现一个基于ArchLinux的发行版--BlackArch,主题十分炫酷(中二).当然渗透类的Linux 发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多 ...
随机推荐
- phpstorm9如何配置interpreter
找到php.exe的路径. 把php.exe 放进去就ok了
- html5语义化标签总结二
HTML 5的革新之一:语义化标签二文本元素标签.分组元素标签. HTML 5的革新——语义化标签(一)中介绍了一些HTML5新加的一些节元素,一张页面中结构元素构成网页大体,但是也需要其他内容来填充 ...
- localStorage、sessionStorages 使用
html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage.sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有 ...
- Django之路:模型(数据库)和自定义Field以及数据表的更改
一.Django 模型(数据库) Django模型是与数据库相关的,与数据库相关的代码一般写在models.py中,Django支持sqlite3,MySQL,PostgreSQL等数据库,只需要在s ...
- CentOS 7 x64 docker 使用点滴
CentOS 7 安装 docker yum search docker 查看是否 有docker包 yum info docker 版本为1.3.2 yum -y install docker ...
- away3d 汽车路线编辑器
2012年的时候,跟朋友去到一个公司,打算用away3d做一个赛车模拟养成游戏,后来由于种种原因,立项未成,由于朋友已经转行,自己也想对自己做过的事情有一些交代,所以将我负责的部分,赛道编辑器的源码公 ...
- vim中c/c++源码跳转
在使用vim阅读c/c++代码的时候,代码跳转很重要, 在学习redis代码的时候遇到这个问题. 网上查找之后通过实践发现cscope比较好用,可以很方便的实现跳转 1. 安装cscope sudo ...
- iOS开发之指纹解锁
http://blog.csdn.net/hongfengkt/article/details/49868073 前一阵子一直在赶项目进度,没有太多时间写博客,现在终于空闲了,将以前欠下的博客补上来. ...
- 只要单片机具有真正唯一ID,就可以让加密坚不可摧(转)
源:只要单片机具有真正唯一ID,就可以让加密坚不可摧 http://www.amobbs.com/thread-5518980-1-1.html 第一环:ID-->F1(ID) -----> ...
- IOS开发中UIAlertController(警告框)的使用
步骤一.初始化: UIAlertController * inputname = [UIAlertController alertControllerWithTitle:@"未输入账户&qu ...