專利名稱:一種適用于視頻服務的緩存服務器部署方法
技術(shù)領域:
本發(fā)明涉及計算機網(wǎng)絡通信領域,具體涉及一種適用于實時通訊的視頻網(wǎng)絡服務器設計和實現(xiàn)。
背景技術(shù):
隨著計算機網(wǎng)絡迅速發(fā)展,計算機領域已經(jīng)發(fā)生了很大的變革,計算不在局限于單臺計算機,存儲不再受限于硬盤的大小,人們從網(wǎng)上獲取的信息也不再滿足于文字、圖片、新聞等靜態(tài)信息。過去幾十年間,人們利用計算機主要是本機處理或者是局域網(wǎng)處理, 隨著網(wǎng)絡技術(shù)和計算機硬件要求的不斷提升,它也在各方面服務人們的生活。網(wǎng)絡的迅速發(fā)展使得視頻點播成為一種可能,它作為一種新型的娛樂方式服務于更多群體,讓更多的消費群體能夠共享提供者的作品。尤其是最近幾年,視頻點播發(fā)展的如火如荼,悠視、 PPlive、酷6、土豆等視頻網(wǎng)站和一些⑶N代理商為門戶網(wǎng)站提供的服務,它們迅速成長起來,并被廣大用戶群體所接收,可見視頻服務領域作為一種新型網(wǎng)絡產(chǎn)業(yè)有著旺盛的生命力和廣闊的發(fā)展前景。然而,由于網(wǎng)絡應用的不斷加大以及INTERNET分布形式和用戶的分布無規(guī)則性, 勢必會導致源站點服務器的負載增加和客戶端瀏覽不順暢,用戶不能容忍響應時間很長和蝸牛般的訪問速度。為了能有效緩解源站點服務器的負載壓力,提高客戶端的瀏覽質(zhì)量,緩存代理(proxy cache)就成為一種優(yōu)先選擇,如何使緩存代理更好服務視頻應用成了需要解決的工作。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種適用于視頻服務的緩存服務器部署方法。本發(fā)明的目的是按以下方式實現(xiàn)的,視頻客戶端通過訪問更近的緩存代理服務器,達到共享遠程源站點服務器上的視頻的作用,緩存服務器能分擔、減少源站點的訪問壓力,更近的緩存服務器能為客戶端提供更有質(zhì)量的視頻服務,步驟如下
緩存代理服務器上,在AUFS文件存儲模式下,緩存代理在緩存目錄下創(chuàng)建二級子目錄樹,用Ll和L2分別表示第一級目錄和第二級子目錄,在頂級CaChe_dir目錄下創(chuàng)建一定數(shù)量的Li,在每個Ll下創(chuàng)建一定數(shù)量的L2,Ll下不直接存放視頻文件,L2下存放的才是真正的視頻文件,視頻文件用A代替,大小平均1-2M,每個L2下存儲的文件數(shù)量,用N表示, 則整個系統(tǒng)存放文件的數(shù)量的關(guān)系式為siZe=Ll*L2*N*A,SIZE單位為MB,為了減少檢索的時間,深度搜索的目錄不易太多,也就是L2下面的文件數(shù)量不易太多,控制在100個文件左右,Ll和L2的設置,對緩存代理性能有很大影響,理論研究L2比Ll大,這樣能保證在同一級目錄下搜索到更多的相關(guān)文件,而不用重新搜索上級目錄; 正常使用緩存代理,首先適當修改內(nèi)核,具體涉及操作系統(tǒng)內(nèi)核是RHEL 4 AS4 ; 關(guān)于文件描述符的有 /proc/sys/fs/file-max 8192_>1006154 FD_SETSIZE涉及下面幾個文件 /usr/include/linux /typesize. h /usr/include/linux/bits FD_SETSIZE /usr/include/linux/posix_types. h ulimit -Hn 1006154
在編譯緩存代理的過程中,查看修改信息Maximum number of file descriptors we can open. . . 65536
關(guān)于防止網(wǎng)絡擁塞的有
/prco/sys/net/ipv4/neigh/default gc_threshl、gc_thresh2、gc_thresh3 將值分別擴大8倍分別修改為1024,5120,10240 ;
/Prco/sys/net/ipv4, ip_forward 0 修改為 1,即運行前監(jiān)測; /etc/security/limit, conf 將 * — nofile 65536 或更大的 1006154 加入; 以上參數(shù)均在編譯squid之前修改才有用;
為了能在緩存服務器中使用AUFS,需要在編譯的時候,將AUFS的相關(guān)參數(shù)進行編譯, 具體如
1)使得一enable-storeio包含AUFS存儲格式,默認只有ufs;
2)選中一enable-印oil,能有效的支持10訪問;
3)根據(jù)磁盤的數(shù)量,有效的配置異步10的參數(shù)量一enable-async-io
4)啟動大文件參數(shù)一with-large-files
5)設置系統(tǒng)的線程數(shù)一With-threads=N
6)將系統(tǒng)支持的最大文件描述符數(shù)量設置大些--with-maXfd=32768;
選擇多硬盤的服務器,目前IU的服務器最多只能掛載4硬盤,除去系統(tǒng)盤,還只能有3塊用作緩存代理,而使用2U服務器,能夠使用作緩存代理的硬盤位達到7塊,對于娛樂應用的服務器,重要的是訪問,響應速度,因此系統(tǒng)存儲端采用不作RAID方式,以保證訪問讀寫速度;
編譯完成以后,需要在緩存代理配置文件中根據(jù)磁盤數(shù)配置主要的文件緩存目錄 cache_dir aufs /ccl 500000 32 512 設置一個緩存目錄的存儲模式為aufs,目錄名稱為ccl,也就是磁盤的掛載點,整個目錄的大小為500000M (500G); cache_dir aufs /cc2 500000 32 512
配置有效的用戶和用戶組 cache—effective—user squid cache—effective—group squid
增加緩存代理服務器的內(nèi)存,緩存代理用到的數(shù)據(jù)都是經(jīng)過后端硬盤,而訪問硬盤會需要很多時鐘周期,將系統(tǒng)內(nèi)存分配給緩存代理使用,將大部分讀寫直接在內(nèi)存上完成,能使數(shù)據(jù)的讀寫能力大大的提高,分配整個系統(tǒng)1/3左右的內(nèi)存資源作為cachejiiem使用,會使得緩存代理與系統(tǒng)性能發(fā)揮的更佳;緩存代理關(guān)心的幾個重要指標分別是命中率,響應時間,吞吐量,測試結(jié)果表明
1 )aufs相對于Ufs和diskd存儲模式,響應時間上,縮短50%以上;吞吐量卻提高1倍以上;命中率也提高很多;
2)4磁盤的aufs比2磁盤的aufs在響應時間和吞吐量上都有很大提高;
3)適量的內(nèi)存作為緩存使用,不管哪種存儲模式,各項指標都有很大提高。本發(fā)明的有益效果是
1、大量部署緩存服務器,選擇后端存儲模式,現(xiàn)在支持的存儲模式有ufs、diskd、aufs、 coss,根據(jù)視頻緩存文件的特點,選擇一種適用于大文件的存儲模式。2、根據(jù)應用的特點,緩存服務器需要滿足視頻應用的性能要求吞吐量相當大,客戶端分布廣泛,負載很大,響應時間需要很短,視頻數(shù)據(jù)流流暢,數(shù)據(jù)的正確性的重要性其次。3、增加服務器的I/O處理能力。選擇多磁盤服務器,能夠提供性能更優(yōu)的緩存代理功能。多個磁盤取代2磁盤的服務器,實際上增加系統(tǒng)的I/O能力。在傳輸大文件的過程中,能大大縮小訪問時間。4、調(diào)整系統(tǒng)的各項參數(shù)使得系統(tǒng)的硬件能發(fā)揮更大作用,緩存代理也能在現(xiàn)有資源上發(fā)揮最大的作用。具體包括(1)內(nèi)核文件描述最大數(shù);(2)網(wǎng)絡的阻塞開放數(shù)量;(3) 緩存代理的異步I/O數(shù)量;(4)用作緩存代理的內(nèi)存使用比率。針對視頻點播方面的緩存服務器,采用將硬盤設計成多盤位,適當?shù)膬?nèi)存作緩存, 多核而不是高頻CPU,緩存代理采用新的、穩(wěn)定版本。提供一套軟硬件結(jié)合的緩存代理方案, 能夠很好的應用于視頻等流媒體應用上,稍作修改,可以應用于其他的緩存代理方面,如大型門戶網(wǎng)站緩存代理上。
附圖1緩存代理服務器網(wǎng)絡結(jié)構(gòu)圖; 附圖2文件存儲模式。
具體實施例方式參照說明書附圖對本發(fā)明的方法作以下詳細地說明。緩存代理中,用戶的訪問實體被成為對象,對象包括文本,圖片,下載文件,網(wǎng)頁連接和其他信息,從大小上分,可分為大文件和小文件,網(wǎng)絡訪問的對象大小平均MK,而視頻文件的平均大小有2M,因此,緩存服務器中,視頻作為大文件看待,基于緩存服務器的后端文件系統(tǒng)目前有UFS ,DISKD、AUFS、C0SS,基于小文件的緩存代理跟大文件的緩存代理設計和實現(xiàn)方式又不一樣。本文提供一種基于大文件的緩存代理方式,并提供測試對比。1)緩存代理服務器上運行的緩存代理服務是squid。通過squid,它一方面將源站點的視頻文件同步到緩存服務器proxy上,另一方面對客戶端提供視頻服務。緩存代理服務器的系統(tǒng)結(jié)構(gòu)如圖1所示。2) UFS是一種傳統(tǒng)的imix文件系統(tǒng),也能適用于一般輕量的squid應用中。但是存在一個致命缺點就是性能非常有限,讀寫能力和cache命中率都非常低。DISKD文件系統(tǒng)是在UFS上改進的一種系統(tǒng),效率提升有限。COSS文件系統(tǒng)目前還是一種實驗型的文件系統(tǒng),容易丟失數(shù)據(jù),不能很好的支持從磁盤數(shù)重建據(jù);還有就是它是針對小文件讀寫的一種文件系統(tǒng)。不適合部署到視頻等大文件緩存服務器上。3)AUFS以異步I/O方式實現(xiàn)傳統(tǒng)unix filesystem的存儲機制,與傳統(tǒng)的存儲機制相比,它使用大量線程進行磁盤I/O操作,AUFS在多CPU核系統(tǒng)上優(yōu)勢更明顯。它唯一的鎖操作發(fā)生在請求和結(jié)果隊列。然而,所有其他的函數(shù)執(zhí)行都是獨立的。當主進程在一個CPU上執(zhí)行時,其他的CPU處理實際的I/O系統(tǒng)調(diào)用。AUFS充分利用服務器上的CPU資源。AUFS文件在緩存服務器上的存儲方式如圖2所示。4) 針對于視頻等大文件服務,打開文件和尋道seek時間占整個文件下載的時間的比例相對于小文件來說要小得多,下載文件的時間占整個訪問的絕大部分。而適用于小文件存儲的COSS后端存儲模式在這方面就比AUFS性能差,AUFS的優(yōu)勢在于使用大量的線程,進行磁盤I/O操作,充分發(fā)揮線程的優(yōu)勢,對大文件進行同時下載。AUFS對所有的 cache_dir使用一個大的線程池,每次squid需要讀寫,打開、關(guān)閉,刪除cache文件時,I/ 0請求被分派到這些線程之一。Cache_dirs和AUFS啟動的線程的對應關(guān)系是更好的應用 AUFS的一個重要因素。下表是它們的對應關(guān)系
權(quán)利要求
1. 一種適用于視頻服務的緩存服務器部署方法,其特征在于視頻客戶端通過訪問更近的緩存代理服務器,達到共享遠程源站點服務器上的視頻的作用,緩存服務器能分擔、 減少源站點的訪問壓力,更近的緩存服務器能為客戶端提供更有質(zhì)量的視頻服務,步驟如下緩存代理服務器上,在AUFS文件存儲模式下,緩存代理在緩存目錄下創(chuàng)建二級子目錄樹,用Ll和L2分別表示第一級目錄和第二級子目錄,在頂級CaChe_dir目錄下創(chuàng)建一定數(shù)量的Li,在每個Ll下創(chuàng)建一定數(shù)量的L2,Ll下不直接存放視頻文件,L2下存放的才是真正的視頻文件,視頻文件用A代替,大小平均1-2M,每個L2下存儲的文件數(shù)量,用N表示, 則整個系統(tǒng)存放文件的數(shù)量的關(guān)系式為siZe=Ll*L2*N*A,SIZE單位為MB,為了減少檢索的時間,深度搜索的目錄不易太多,也就是L2下面的文件數(shù)量不易太多,控制在100個文件左右,Ll和L2的設置,對緩存代理性能有很大影響,理論研究L2比Ll大,這樣能保證在同一級目錄下搜索到更多的相關(guān)文件,而不用重新搜索上級目錄; 正常使用緩存代理,首先適當修改內(nèi)核,具體涉及 操作系統(tǒng)內(nèi)核是RHEL 4 AS4 ; 關(guān)于文件描述符的有 /proc/sys/fs/file-max 8192_>1006154 FD_SETSIZE涉及下面幾個文件 /usr/include/linux /typesize. h /usr/include/linux/bits FD_SETSIZE /usr/include/linux/posix_types. h ulimit -Hn 1006154在編譯緩存代理的過程中,查看修改信息Maximum number of file descriptors we can open. . . 65536關(guān)于防止網(wǎng)絡擁塞的有/prco/sys/net/ipv4/neigh/default gc_threshl、gc_thresh2、gc_thresh3 將值分別擴大8倍分別修改為1024,5120,10240 ;/Prco/sys/net/ipv4, ip_forward 0 修改為 1,即運行前監(jiān)測; /etc/security/limit, conf 將 * — nofile 65536 或更大的 1006154 加入; 以上參數(shù)均在編譯squid之前修改才有用;為了能在緩存服務器中使用AUFS,需要在編譯的時候,將AUFS的相關(guān)參數(shù)進行編譯, 具體如1)使得一enable-storeio包含AUFS存儲格式,默認只有ufs;2)選中一enable-印oil,能有效的支持10訪問;3)根據(jù)磁盤的數(shù)量,有效的配置異步10的參數(shù)量一enable-async-io4)啟動大文件參數(shù)一with-large-files5)設置系統(tǒng)的線程數(shù)一With-threads=N6)將系統(tǒng)支持的最大文件描述符數(shù)量設置大些--with-maXfd=32768;選擇多硬盤的服務器,目前IU的服務器最多只能掛載4硬盤,除去系統(tǒng)盤,還只能有3塊用作緩存代理,而使用2U服務器,能夠使用作緩存代理的硬盤位達到7塊,對于娛樂應用的服務器,重要的是訪問,響應速度,因此系統(tǒng)存儲端采用不作RAID方式,以保證訪問讀寫速度;編譯完成以后,需要在緩存代理配置文件中根據(jù)磁盤數(shù)配置主要的文件緩存目錄 cache_dir aufs /ccl 500000 32 512 設置一個緩存目錄的存儲模式為aufs, 目錄名稱為ccl,也就是磁盤的掛載點,整個目錄的大小為500000M (500G); cache_dir aufs /cc2 500000 32 512配置有效的用戶和用戶組 cache—effective—user squid cache—effective—group squid增加緩存代理服務器的內(nèi)存,緩存代理用到的數(shù)據(jù)都是經(jīng)過后端硬盤,而訪問硬盤會需要很多時鐘周期,將系統(tǒng)內(nèi)存分配給緩存代理使用,將大部分讀寫直接在內(nèi)存上完成,能使數(shù)據(jù)的讀寫能力大大的提高,分配整個系統(tǒng)1/3左右的內(nèi)存資源作為cachejiiem使用,會使得緩存代理與系統(tǒng)性能發(fā)揮的更佳;緩存代理關(guān)心的幾個重要指標分別是命中率,響應時間,吞吐量,測試結(jié)果表明[1 )aufs相對于Ufs和diskd存儲模式,響應時間上,縮短50%以上;吞吐量卻提高1倍以上;命中率也提高很多;[2)4磁盤的aufs比2磁盤的aufs在響應時間和吞吐量上都有很大提高;[3)適量的內(nèi)存作為緩存使用,不管哪種存儲模式,各項指標都有很大提高。
全文摘要
本發(fā)明提供一種適用于視頻服務的緩存服務器部署方法,視頻客戶端通過訪問更近的緩存代理服務器,達到共享遠程源站點服務器上的視頻的作用,緩存服務器能分擔、減少源站點的訪問壓力,更近的緩存服務器能為客戶端提供更有質(zhì)量的視頻服務,針對視頻點播方面的緩存服務器,采用將硬盤設計成多盤位,適當?shù)膬?nèi)存作緩存,多核而不是高頻CPU,緩存代理采用新的、穩(wěn)定版本,提供一套軟硬件結(jié)合的緩存代理方案,能夠很好的應用于視頻等流媒體應用上,稍作修改,可以應用于其他的緩存代理方面,如大型門戶網(wǎng)站緩存代理上。
文檔編號H04N21/231GK102355596SQ20111030558
公開日2012年2月15日 申請日期2011年10月11日 優(yōu)先權(quán)日2011年10月11日
發(fā)明者李開君 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司