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>

相關文章
相關標籤/搜索