青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

YouTube架構(gòu)

原文鏈接:http://www.highscalability.com/youtube-architecture
譯文鏈接:http://hideto.iteye.com/blog/129726

原文: YouTube Architecture 

YouTube發(fā)展迅速,每天超過1億的視頻點(diǎn)擊量,但只有很少人在維護(hù)站點(diǎn)和確保伸縮性。 

平臺 
Apache 
Python 
Linux(SuSe) 
MySQL 
psyco,一個(gè)動態(tài)的Python到C的編譯器 
lighttpd代替Apache做視頻查看 

狀態(tài) 
支持每天超過1億的視頻點(diǎn)擊量 
成立于2005年2月 
于2006年3月達(dá)到每天3千萬的視頻點(diǎn)擊量 
于2006年7月達(dá)到每天1億的視頻點(diǎn)擊量 
2個(gè)系統(tǒng)管理員,2個(gè)伸縮性軟件架構(gòu)師 
2個(gè)軟件開發(fā)工程師,2個(gè)網(wǎng)絡(luò)工程師,1個(gè)DBA 

處理飛速增長的流量 
while (true)
{
  identify_and_fix_bottlenecks();
  drink();
  sleep();
  notice_new_bottleneck();
}
每天運(yùn)行該循環(huán)多次 

Web服務(wù)器 
1,NetScaler用于負(fù)載均衡和靜態(tài)內(nèi)容緩存 
2,使用mod_fast_cgi運(yùn)行Apache 
3,使用一個(gè)Python應(yīng)用服務(wù)器來處理請求的路由 
4,應(yīng)用服務(wù)器與多個(gè)數(shù)據(jù)庫和其他信息源交互來獲取數(shù)據(jù)和格式化html頁面 
5,一般可以通過添加更多的機(jī)器來在Web層提高伸縮性 
6,Python的Web層代碼通常不是性能瓶頸,大部分時(shí)間阻塞在RPC 
7,Python允許快速而靈活的開發(fā)和部署 
8,通常每個(gè)頁面服務(wù)少于100毫秒的時(shí)間 
9,使用psyco(一個(gè)類似于JIT編譯器的動態(tài)的Python到C的編譯器)來優(yōu)化內(nèi)部循環(huán) 
10,對于像加密等密集型CPU活動,使用C擴(kuò)展 
11,對于一些開銷昂貴的塊使用預(yù)先生成并緩存的html 
12,數(shù)據(jù)庫里使用行級緩存 
13,緩存完整的Python對象 
14,有些數(shù)據(jù)被計(jì)算出來并發(fā)送給各個(gè)程序,所以這些值緩存在本地內(nèi)存中。這是個(gè)使用不當(dāng)?shù)牟呗浴?yīng)用服務(wù)器里最快的緩存將預(yù)先計(jì)算的值發(fā)送給所有服務(wù)器也花不了多少時(shí)間。只需弄一個(gè)代理來監(jiān)聽更改,預(yù)計(jì)算,然后發(fā)送。 

視頻服務(wù) 
1,花費(fèi)包括帶寬,硬件和能源消耗 
2,每個(gè)視頻由一個(gè)迷你集群來host,每個(gè)視頻被超過一臺機(jī)器持有 
3,使用一個(gè)集群意味著: 
-更多的硬盤來持有內(nèi)容意味著更快的速度 
-failover。如果一臺機(jī)器出故障了,另外的機(jī)器可以繼續(xù)服務(wù) 
-在線備份 
4,使用lighttpd作為Web服務(wù)器來提供視頻服務(wù): 
-Apache開銷太大 
-使用epoll來等待多個(gè)fds 
-從單進(jìn)程配置轉(zhuǎn)變?yōu)槎噙M(jìn)程配置來處理更多的連接 
5,大部分流行的內(nèi)容移到CDN: 
-CDN在多個(gè)地方備份內(nèi)容,這樣內(nèi)容離用戶更近的機(jī)會就會更高 
-CDN機(jī)器經(jīng)常內(nèi)存不足,因?yàn)閮?nèi)容太流行以致很少有內(nèi)容進(jìn)出內(nèi)存的顛簸 
6,不太流行的內(nèi)容(每天1-20瀏覽次數(shù))在許多colo站點(diǎn)使用YouTube服務(wù)器 
-長尾效應(yīng)。一個(gè)視頻可以有多個(gè)播放,但是許多視頻正在播放。隨機(jī)硬盤塊被訪問 
-在這種情況下緩存不會很好,所以花錢在更多的緩存上可能沒太大意義。 
-調(diào)節(jié)RAID控制并注意其他低級問題 
-調(diào)節(jié)每臺機(jī)器上的內(nèi)存,不要太多也不要太少 

視頻服務(wù)關(guān)鍵點(diǎn) 
1,保持簡單和廉價(jià) 
2,保持簡單網(wǎng)絡(luò)路徑,在內(nèi)容和用戶間不要有太多設(shè)備 
3,使用常用硬件,昂貴的硬件很難找到幫助文檔 
4,使用簡單而常見的工具,使用構(gòu)建在Linux里或之上的大部分工具 
5,很好的處理隨機(jī)查找(SATA,tweaks) 

縮略圖服務(wù) 
1,做到高效令人驚奇的難 
2,每個(gè)視頻大概4張縮略圖,所以縮略圖比視頻多很多 
3,縮略圖僅僅host在幾個(gè)機(jī)器上 
4,持有一些小東西所遇到的問題: 
-OS級別的大量的硬盤查找和inode和頁面緩存問題 
-單目錄文件限制,特別是Ext3,后來移到多分層的結(jié)構(gòu)。內(nèi)核2.6的最近改進(jìn)可能讓Ext3允許大目錄,但在一個(gè)文件系統(tǒng)里存儲大量文件不是個(gè)好主意 
-每秒大量的請求,因?yàn)閃eb頁面可能在頁面上顯示60個(gè)縮略圖 
-在這種高負(fù)載下Apache表現(xiàn)的非常糟糕 
-在Apache前端使用squid,這種方式工作了一段時(shí)間,但是由于負(fù)載繼續(xù)增加而以失敗告終。它讓每秒300個(gè)請求變?yōu)?0個(gè) 
-嘗試使用lighttpd但是由于使用單線程它陷于困境。遇到多進(jìn)程的問題,因?yàn)樗鼈兏髯员3肿约簡为?dú)的緩存 
-如此多的圖片以致一臺新機(jī)器只能接管24小時(shí) 
-重啟機(jī)器需要6-10小時(shí)來緩存 
5,為了解決所有這些問題YouTube開始使用Google的BigTable,一個(gè)分布式數(shù)據(jù)存儲: 
-避免小文件問題,因?yàn)樗鼘⑽募占揭黄?span id="hvzpftn" class="Apple-converted-space"> 
-快,錯(cuò)誤容忍 
-更低的延遲,因?yàn)樗褂梅植际蕉嗉壘彺妫摼彺媾c多個(gè)不同collocation站點(diǎn)工作 
-更多信息參考Google ArchitectureGoogleTalk ArchitectureBigTable 

數(shù)據(jù)庫 
1,早期 
-使用MySQL來存儲元數(shù)據(jù),如用戶,tags和描述 
-使用一整個(gè)10硬盤的RAID 10來存儲數(shù)據(jù) 
-依賴于信用卡所以YouTube租用硬件 
-YouTube經(jīng)過一個(gè)常見的革命:單服務(wù)器,然后單master和多read slaves,然后數(shù)據(jù)庫分區(qū),然后sharding方式 
-痛苦與備份延遲。master數(shù)據(jù)庫是多線程的并且運(yùn)行在一個(gè)大機(jī)器上所以它可以處理許多工作,slaves是單線程的并且通常運(yùn)行在小一些的服務(wù)器上并且備份是異步的,所以slaves會遠(yuǎn)遠(yuǎn)落后于master 
-更新引起緩存失效,硬盤的慢I/O導(dǎo)致慢備份 
-使用備份架構(gòu)需要花費(fèi)大量的money來獲得增加的寫性能 
-YouTube的一個(gè)解決方案是通過把數(shù)據(jù)分成兩個(gè)集群來將傳輸分出優(yōu)先次序:一個(gè)視頻查看池和一個(gè)一般的集群 
2,后期 
-數(shù)據(jù)庫分區(qū) 
-分成shards,不同的用戶指定到不同的shards 
-擴(kuò)散讀寫 
-更好的緩存位置意味著更少的IO 
-導(dǎo)致硬件減少30% 
-備份延遲降低到0 
-現(xiàn)在可以任意提升數(shù)據(jù)庫的伸縮性 

數(shù)據(jù)中心策略 
1,依賴于信用卡,所以最初只能使用受管主機(jī)提供商 
2,受管主機(jī)提供商不能提供伸縮性,不能控制硬件或使用良好的網(wǎng)絡(luò)協(xié)議 
3,YouTube改為使用colocation arrangement。現(xiàn)在YouTube可以自定義所有東西并且協(xié)定自己的契約 
4,使用5到6個(gè)數(shù)據(jù)中心加CDN 
5,視頻來自任意的數(shù)據(jù)中心,不是最近的匹配或其他什么。如果一個(gè)視頻足夠流行則移到CDN 
6,依賴于視頻帶寬而不是真正的延遲。可以來自任何colo 
7,圖片延遲很嚴(yán)重,特別是當(dāng)一個(gè)頁面有60張圖片時(shí) 
8,使用BigTable將圖片備份到不同的數(shù)據(jù)中心,代碼查看誰是最近的 

學(xué)到的東西 
1,Stall for time。創(chuàng)造性和風(fēng)險(xiǎn)性的技巧讓你在短期內(nèi)解決問題而同時(shí)你會發(fā)現(xiàn)長期的解決方案 
2,Proioritize。找出你的服務(wù)中核心的東西并對你的資源分出優(yōu)先級別 
3,Pick your battles。別怕將你的核心服務(wù)分出去。YouTube使用CDN來分布它們最流行的內(nèi)容。創(chuàng)建自己的網(wǎng)絡(luò)將花費(fèi)太多時(shí)間和太多money 
4,Keep it simple!簡單允許你更快的重新架構(gòu)來回應(yīng)問題 
5,Shard。Sharding幫助隔離存儲,CPU,內(nèi)存和IO,不僅僅是獲得更多的寫性能 
6,Constant iteration on bottlenecks: 
-軟件:DB,緩存 
-OS:硬盤I/O 
-硬件:內(nèi)存,RAID 
7,You succeed as a team。擁有一個(gè)跨越條律的了解整個(gè)系統(tǒng)并知道系統(tǒng)內(nèi)部是什么樣的團(tuán)隊(duì),如安裝打印機(jī),安裝機(jī)器,安裝網(wǎng)絡(luò)等等的人。With a good team all things are possible。


posted on 2012-01-13 18:15 楊粼波 閱讀(1343) 評論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)編程

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久国产精品一区二区| 狠狠色2019综合网| 午夜视频一区二区| 亚洲一区bb| 性色av一区二区三区| 欧美一区=区| 老司机一区二区三区| 欧美激情中文字幕一区二区| 欧美日本久久| 国产网站欧美日韩免费精品在线观看| 国产午夜久久久久| 亚洲一区日韩| 午夜国产精品影院在线观看 | 欧美影院成年免费版| 久久黄色级2电影| 欧美久久电影| 国产一区二区成人| 9久re热视频在线精品| 欧美影片第一页| 欧美激情精品久久久久久黑人| 日韩午夜一区| 久久久国产一区二区| 欧美性jizz18性欧美| 在线不卡中文字幕播放| 亚洲一区二区三区精品视频| 欧美v亚洲v综合ⅴ国产v| av成人激情| 美日韩精品免费观看视频| 国产精品区一区二区三区| 亚洲三级免费电影| 久久影院午夜片一区| 亚洲一级在线| 欧美性猛交xxxx乱大交退制版| 亚洲精品国产品国语在线app| 亚洲视频专区在线| 亚洲激情校园春色| 亚洲欧美日韩成人| 亚洲国产裸拍裸体视频在线观看乱了中文 | 在线观看视频一区| 亚洲欧洲日本在线| 亚洲精品乱码视频 | 欧美交受高潮1| 亚洲欧美国产日韩天堂区| 小黄鸭精品密入口导航| 亚洲丰满在线| 一本色道久久综合精品竹菊 | 久久久噜噜噜久噜久久 | 欧美日精品一区视频| 久久爱另类一区二区小说| 欧美电影资源| 久久精品国产精品| 欧美伦理a级免费电影| 久久久精彩视频| 欧美日韩中文另类| 久久夜色精品国产欧美乱极品 | 久久精品亚洲| 99精品热视频只有精品10| 午夜精品久久久久| 亚洲视频第一页| 久久夜色精品国产欧美乱极品| 亚洲网在线观看| 六月婷婷久久| 久久激情久久| 国产精品久久久久av免费| 亚洲成人在线视频网站| 国产精品亚洲综合色区韩国| 亚洲大片av| 国内成+人亚洲| 亚洲综合日本| 亚洲伊人久久综合| 欧美国产一区二区三区激情无套| 久久男人av资源网站| 国产欧美日韩精品丝袜高跟鞋| 亚洲作爱视频| 亚洲无线视频| 欧美精品一区二区在线播放| 欧美福利在线| 伊人久久大香线蕉综合热线| 午夜精品三级视频福利| 欧美一区二区三区视频在线观看 | 亚洲国产欧美在线| 久久久国产91| 久久夜色精品国产噜噜av| 国产一区二区三区黄| 欧美在线www| 久久久久久久久久久久久9999| 国产伦精品一区二区三区免费 | 羞羞色国产精品| 欧美成人午夜激情视频| 亚洲欧美日韩在线观看a三区| 亚洲三级影院| 久久久久久久一区二区| 亚洲专区在线| av成人免费在线观看| 国产精品美女黄网| 欧美精品亚洲| 亚洲尤物在线视频观看| 国产精品一区二区三区四区| 红桃视频欧美| 欧美理论大片| 蜜桃久久av一区| 一区二区三区在线看| 久久久久91| 欧美成人午夜激情| 最新精品在线| 欧美激情二区三区| 亚洲视频精品在线| 久久gogo国模裸体人体| 国语自产精品视频在线看一大j8| 久久九九免费视频| 91久久黄色| 亚洲一区二区三区在线| 国产精品亚洲综合| 久久香蕉国产线看观看av| 亚洲国产成人av| 亚洲无亚洲人成网站77777| 国产亚洲精品久久飘花| 欧美 日韩 国产一区二区在线视频| 91久久视频| 性欧美暴力猛交另类hd| 在线看日韩av| 国产精品sss| 久久久精品性| 一本久道综合久久精品| 久久久精品国产免大香伊| 亚洲看片免费| 国产在线观看精品一区二区三区| 美女脱光内衣内裤视频久久网站| 99视频超级精品| 另类成人小视频在线| 亚洲视频中文字幕| 加勒比av一区二区| 欧美视频免费| 美女视频黄 久久| 午夜精品久久久久久久久久久| 欧美激情 亚洲a∨综合| 欧美一区1区三区3区公司| 亚洲精品资源| 精品电影在线观看| 国产精品久久久久久影视| 噜噜噜噜噜久久久久久91| 午夜精品视频| 夜夜精品视频一区二区| 欧美激情在线播放| 久久综合给合久久狠狠狠97色69| 亚洲一区在线观看免费观看电影高清| 影音先锋在线一区| 国产日本欧美在线观看| 国产精品地址| 久久天堂av综合合色| 国内精品久久久久久久果冻传媒| 欧美黄色大片网站| 性欧美大战久久久久久久免费观看 | 久久激情网站| 亚洲网站在线播放| 亚洲国产精品一区二区尤物区| 久久成人羞羞网站| 亚洲免费视频在线观看| 日韩午夜av| 亚洲人成啪啪网站| 亚洲国产精品www| 韩国三级电影一区二区| 国产精品亚洲人在线观看| 欧美午夜视频在线| 欧美日韩精品三区| 欧美理论电影在线观看| 欧美激情按摩在线| 欧美国产日本高清在线| 欧美成人自拍| 欧美精品在线观看一区二区| 欧美国产精品久久| 欧美电影在线播放| 欧美精品日韩| 欧美日韩精品一区二区三区| 欧美搞黄网站| 欧美激情无毛| 欧美日韩第一区| 欧美日韩影院| 国产精品久久久久久亚洲毛片| 国产精品国码视频| 国产精品亚洲а∨天堂免在线| 国产精品每日更新| 国产伪娘ts一区| 一区视频在线| 亚洲人成网站999久久久综合| 亚洲三级性片| 亚洲视频一区二区在线观看| 亚洲一线二线三线久久久| 香蕉av777xxx色综合一区| 久久成人这里只有精品| 久久噜噜噜精品国产亚洲综合| 久久婷婷亚洲| 欧美福利在线| 艳女tv在线观看国产一区| 亚洲伊人色欲综合网| 久久久精品国产99久久精品芒果| 你懂的国产精品永久在线| 欧美日韩一区二区三区免费| 国产精品丝袜91| 在线电影院国产精品|