分析影响流媒体服务器性能的硬件瓶颈
流媒體服務(wù)器作為為用戶提供服務(wù)的基本功能單元,其性能的高低直接影響到流媒體系統(tǒng)的服務(wù)能力。在衡量流媒體服務(wù)器時(shí),最關(guān)鍵的指標(biāo)是流輸出能力和能同時(shí)支持的并發(fā)請(qǐng)求數(shù)量,下面我們以本地硬盤作為存儲(chǔ)介質(zhì)的流媒體服務(wù)器為例,首先對(duì)其工作過(guò)程進(jìn)行簡(jiǎn)單的分析:
(1)從硬盤盤碟中分段讀取流媒體文件內(nèi)容,經(jīng)過(guò)硬盤接口電路(SCSI、IDE)、PCI總線和系統(tǒng)內(nèi)部總線存儲(chǔ)到內(nèi)存中(途中經(jīng)過(guò)硬盤控制卡和PCI控制器兩個(gè)轉(zhuǎn)換接口)。
(2)在流媒體文件被發(fā)送到網(wǎng)絡(luò)上之前,CPU需要對(duì)內(nèi)存中的流媒體文件片段進(jìn)行一些處理,例如,復(fù)制、切分、按協(xié)議打包等。
(3)打包之后的文件內(nèi)容在內(nèi)存中通過(guò)系統(tǒng)內(nèi)部總線、PCI控制器、PCI總線到達(dá)網(wǎng)卡。
(4)網(wǎng)卡將文件內(nèi)容再一次包裝后發(fā)送到外部網(wǎng)絡(luò)。
通過(guò)以上的分析可以看出,在硬件方面有四個(gè)影響到流媒體服務(wù)器性能的關(guān)鍵因素:CPU處理能力、內(nèi)存、磁盤讀取能力和網(wǎng)絡(luò)吞吐率。
(1)CPU處理能力
流媒體服務(wù)器的CPU主要進(jìn)行內(nèi)容文件的復(fù)制、切分和按協(xié)議打包等工作,并對(duì)用戶發(fā)起的各種服務(wù)請(qǐng)求(如快進(jìn)、快退、搜索等)進(jìn)行響應(yīng)和處理以及服務(wù)器列表信息的維護(hù)和檢索等。
對(duì)CPU處理能力的要求,隨著需要支持用戶并發(fā)訪問和服務(wù)數(shù)量的增長(zhǎng)而提高,當(dāng)并發(fā)用戶數(shù)越多,點(diǎn)播的節(jié)目越分散,對(duì)CPU的處理要求越高。當(dāng)進(jìn)行直 播或用戶點(diǎn)播單一文件時(shí),服務(wù)器為用戶提供的內(nèi)容都是相同的,只需要讀取一份源內(nèi)容,然后進(jìn)行內(nèi)容的復(fù)制、分發(fā)操作;而當(dāng)用戶點(diǎn)播不同的節(jié)目時(shí),不僅要進(jìn) 行內(nèi)容的分發(fā)操作,還需要從多個(gè)節(jié)目源中取內(nèi)容,進(jìn)行更多的磁盤讀取和內(nèi)容讀寫操作,需要啟動(dòng)更多的進(jìn)程,每個(gè)進(jìn)程分配的時(shí)間片變小,并需要增加更多的進(jìn) 程切換操作。因此同樣配置的服務(wù)器,用于直播服務(wù)的可以同時(shí)為幾千個(gè)用戶服務(wù),但用于點(diǎn)播服務(wù)時(shí),則只能為幾百個(gè)用戶提供服務(wù)。
另外,在流媒體服務(wù)的不同階段,CPU的負(fù)荷也是不同的。在流媒體連接建立初始階段,除正常的文件復(fù)制、切分和協(xié)議打包工作外,會(huì)有更多的交互請(qǐng)求需 要處理,而且為減少用戶等待緩存的時(shí)間,有些系統(tǒng)會(huì)在短時(shí)間內(nèi)提高文件傳輸速度,這就導(dǎo)致更多的文件讀取和處理工作,要比平穩(wěn)連接階段更耗費(fèi)資源。
(2)對(duì)原始數(shù)據(jù)的讀取能力
原始流媒體文件的存放方式主要有本地硬盤、NAS或SAN存儲(chǔ)設(shè)備幾種。不論那種數(shù)據(jù)存儲(chǔ)方式,原始數(shù)據(jù)文件的讀取能力都將直接影 響到服務(wù)器的性能。對(duì)讀取能力的要求,與業(yè)務(wù)類型和用戶請(qǐng)求的數(shù)量有很大的關(guān)系。直播對(duì)于數(shù)據(jù)讀取速率的要求最低,不過(guò)它需要為多少用戶提供服務(wù),只需從 數(shù)據(jù)源取一份數(shù)據(jù),然后進(jìn)行復(fù)制;但是,點(diǎn)播則需要為每個(gè)用戶讀取不同的數(shù)據(jù)源,對(duì)數(shù)據(jù)源的讀取壓力大得多。
原始數(shù)據(jù)的讀取能力是流媒體服務(wù)器最大的性能瓶頸,主要是受到存儲(chǔ)設(shè)備的速度限制。目前主要采用兩種解決方法:一是采用Raid技術(shù)和磁盤陣列,提高 硬件速度,不過(guò)價(jià)格較高;另一種方法是采用文件緩存技術(shù),如果幾個(gè)用戶點(diǎn)播同一個(gè)節(jié)目,就可以從緩存中而不是存儲(chǔ)設(shè)備中讀取數(shù)據(jù),減少存儲(chǔ)設(shè)備壓力。不過(guò) 這種方法效果有限,隨著點(diǎn)播用戶請(qǐng)求數(shù)的增長(zhǎng),用戶點(diǎn)播的節(jié)目會(huì)越來(lái)越分散,在緩存中命中的比例就會(huì)逐步降低,當(dāng)命中率降低到一定程度,起不到減輕存儲(chǔ)設(shè) 備讀取壓力的作用。
(3)內(nèi)存
在流媒體服務(wù)器中,內(nèi)存可以按其用途分為兩大部分。一部分是為處理每個(gè)用戶的流媒體請(qǐng)求和服務(wù)使用的內(nèi)存,用戶的平均內(nèi)存使用率取決于流媒體內(nèi)容的發(fā) 布類型和編碼設(shè)置,如比特率、包大小、音頻流和視頻流的數(shù)目等。根據(jù)用戶行為、服務(wù)的目標(biāo)用戶數(shù)、用戶請(qǐng)求連接流的分散率和發(fā)布點(diǎn)類型,可以估算出一個(gè)流 媒體服務(wù)器需要使用多大的內(nèi)存。
另一部分是用于緩存數(shù)據(jù)文件。當(dāng)服務(wù)器處理、發(fā)送和從存儲(chǔ)設(shè)備讀取數(shù)據(jù)時(shí),都需要通過(guò)內(nèi)存進(jìn)行內(nèi)容緩存。當(dāng)內(nèi)存不足時(shí),會(huì)出現(xiàn)內(nèi)存分頁(yè)現(xiàn)象。內(nèi)存分頁(yè) 可能會(huì)造成無(wú)法預(yù)料的延遲。大物理內(nèi)存可以將因內(nèi)存分頁(yè)而產(chǎn)生的延遲最小化,更多的內(nèi)存可以提供更多的文件緩存,減少存儲(chǔ)設(shè)備讀取能力瓶頸造成的影響,提 高服務(wù)器性能。
(4)網(wǎng)絡(luò)吞吐率
服務(wù)器網(wǎng)絡(luò)接口的服務(wù)能力影響到數(shù)據(jù)的傳輸,當(dāng)網(wǎng)絡(luò)帶寬不足時(shí),會(huì)導(dǎo)致數(shù)據(jù)收發(fā)延遲,導(dǎo)致用戶服務(wù)中斷。服務(wù)器的網(wǎng)絡(luò)吞吐率只與用戶數(shù)量和點(diǎn)播節(jié)目的編碼率有關(guān)。
對(duì)于一個(gè)流媒體服務(wù)器來(lái)說(shuō),以上幾個(gè)因素中的任何一個(gè)都會(huì)造成服務(wù)器無(wú)法正常工作。另外,各個(gè)性能因素和處理環(huán)節(jié)是相互聯(lián)系、相互影響的。例如當(dāng)內(nèi)存 不足時(shí),會(huì)產(chǎn)生大量的內(nèi)存分頁(yè)操作,同時(shí)也會(huì)造成CPU的使用率很快上升到100%;增大內(nèi)存,提高服務(wù)器內(nèi)存緩存能力,還可以降低硬盤讀取操作。因此,在進(jìn)行服務(wù)器配置時(shí),要盡量做到各方面的性能協(xié)調(diào)和匹配,各性能指標(biāo)均衡,同時(shí)應(yīng)考慮到不同組件的價(jià)格不同,比如存儲(chǔ)設(shè)備價(jià)格較高,可相應(yīng)配置較低的CPU和較大的內(nèi)存,以提高設(shè)備的性價(jià)比。
總結(jié)
以上是生活随笔為你收集整理的分析影响流媒体服务器性能的硬件瓶颈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英文字典。怎样设计数据结构
- 下一篇: 非接触式IC智能(射频)卡