亚洲国产综合日韩AV在线|午夜精品视频在线观看一区|亚洲国产精品看片在线观看|av网站手机免费在线观看|综合免费一区二区|a级国产乱理伦片在线观看|在线欧美熟乱视频第一页

亚洲国产综合日韩AV在线|午夜精品视频在线观看一区|亚洲国产精品看片在线观看|av网站手机免费在线观看|综合免费一区二区|a级国产乱理伦片在线观看|在线欧美熟乱视频第一页

合肥做網(wǎng)站,選擇瘋狗科技,專(zhuān)業(yè)、敬業(yè)的合肥網(wǎng)絡(luò )公司
首頁(yè) > 互聯(lián)網(wǎng)產(chǎn)品 > 詳情

大型網(wǎng)站的靈魂:性能

2015-08-05 16:53:01   來(lái)源:互聯(lián)網(wǎng)   瀏覽:  次
在前一篇隨筆大型網(wǎng)站系統架構的演化中,介紹了大型網(wǎng)站的演化過(guò)程,期間穿插了一些技術(shù)和手段,我們可以從中看出一個(gè)大型網(wǎng)站的輪廓,但想

在前一篇隨筆大型網(wǎng)站系統架構的演化中,介紹了大型網(wǎng)站的演化過(guò)程,期間穿插了一些技術(shù)和手段,我們可以從中看出一個(gè)大型網(wǎng)站的輪廓,但想要掌握設計開(kāi)發(fā)維護大型網(wǎng)站的技術(shù),需要我們一步一步去研究實(shí)踐。所以我打算寫(xiě)一個(gè)系列,從理論到實(shí)踐講述大型網(wǎng)站的點(diǎn)滴,這也是一個(gè)共同學(xué)習的過(guò)程,希望自己能堅持下去。系列大概會(huì )分為兩部分,理論和實(shí)踐,理論部分盡量通俗易懂,也要講一些細節。實(shí)踐部分會(huì )抽取一些技術(shù)做實(shí)踐,將方法、解決問(wèn)題過(guò)程分享出來(lái)。本文將講述大型網(wǎng)站中一個(gè)重要的要素,性能。

什么是性能

有人說(shuō)性能就是訪(fǎng)問(wèn)速度快慢,這是最直觀(guān)的說(shuō)法,也是用戶(hù)的真實(shí)體驗。一個(gè)用戶(hù)從輸入網(wǎng)址到按下回車(chē)鍵,看到網(wǎng)頁(yè)的快慢,這就是性能。對于我們來(lái)說(shuō),需要去挖掘這個(gè)過(guò)程,因為這決定我們怎么去做性能優(yōu)化。

這中間發(fā)生了什么?

用戶(hù)訪(fǎng)問(wèn)網(wǎng)站的整個(gè)流程:用戶(hù)輸入網(wǎng)站域名,通過(guò)DNS解析,找到目標服務(wù)器IP,請求數據經(jīng)互聯(lián)網(wǎng)達到目標服務(wù)器,目標服務(wù)器收到請求數據,進(jìn)行處理(執行程序、訪(fǎng)問(wèn)數據庫、文件服務(wù)器等)。處理完成,將響應數據又經(jīng)互聯(lián)網(wǎng)返回給用戶(hù)瀏覽器,瀏覽器得到結果進(jìn)行計算渲染顯示給用戶(hù)。

我們把整個(gè)過(guò)程,分為三段路徑:

1、第一段在用戶(hù)和瀏覽器端,主要負責發(fā)出用戶(hù)請求,以及接受響應數據進(jìn)行計算渲染顯示給用戶(hù);

2、第二段在網(wǎng)絡(luò )上,負責對請求數據、響應數據的傳輸;

3、第三段在網(wǎng)站服務(wù)器端,負責對請求數據進(jìn)行處理(執行程序、訪(fǎng)問(wèn)數據庫、文件等),并將結果返回;

第一路徑

第一路徑花費的時(shí)間包括輸入域名發(fā)起請求的時(shí)間和瀏覽器收到響應后計算渲染的時(shí)間。

輸入域名發(fā)起請求,實(shí)質(zhì)過(guò)程是:

1、用戶(hù)在瀏覽器輸入要訪(fǎng)問(wèn)的網(wǎng)站域名;

2、本地DNS請求網(wǎng)站授權的DNS服務(wù)器對域名進(jìn)行解析,并得到解析結果即IP地址(并將IP地址緩存起來(lái))。

3、向目標IP地址發(fā)出請求。

從這個(gè)過(guò)程我們可以看到,優(yōu)化的地方主要是減少DNS解析次數,而如果用戶(hù)瀏覽器設置了緩存,則再第二次訪(fǎng)問(wèn)相同域名的時(shí)候就不會(huì )去請求DNS服務(wù)器,直接用緩存中的IP地址發(fā)出請求。因此這個(gè)過(guò)程主要取決于瀏覽器的設置?,F在主流的瀏覽器默認設置了DNS的預取功能(DNS Prefetch),當然你也可以主動(dòng)告知瀏覽器我的網(wǎng)站需要做DNS預?。?/p>

瀏覽器將數據進(jìn)行計算渲染的過(guò)程:

1、瀏覽器解析響應數據;

2、瀏覽器創(chuàng )建DOM樹(shù);

3、瀏覽器下載CSS樣式,并應用到DOM樹(shù),進(jìn)行渲染;

4、瀏覽器下載JS文件,開(kāi)始解析執行;

5、顯示給用戶(hù)。

從這個(gè)過(guò)程,我們可以找出不少可以?xún)?yōu)化的地方。首先我們可以盡量控制頁(yè)面大小,使得瀏覽器解析的時(shí)間更短;并且將多個(gè)CSS文件、JS文件文件合并壓縮減少文件下載的次數和大??;另外注意將CSS放在頁(yè)面前面,JS訪(fǎng)問(wèn)頁(yè)面后面,這樣便于頁(yè)面首先能渲染出來(lái),再執行js腳本,對于用戶(hù)來(lái)說(shuō)有更好的體驗。最后我還可以設置瀏覽器緩存,下次訪(fǎng)問(wèn)時(shí)從緩存讀取內容,減少http請求。

 

該代碼說(shuō)明了瀏覽器啟用了緩存并在5秒內不會(huì )再次訪(fǎng)問(wèn)服務(wù)器。注意緩存的設置需要結合你的業(yè)務(wù)特性來(lái)適當配置。

以下是京東商城的HTML簡(jiǎn)圖:

css樣式放在html前面,并且進(jìn)行了合并。

大型網(wǎng)站 網(wǎng)站性能 代碼優(yōu)化

大多數的JS文件放在頁(yè)尾。

大型網(wǎng)站 網(wǎng)站性能 代碼優(yōu)化

第二路徑

第二路徑在網(wǎng)絡(luò )上,花費的時(shí)間同樣包括請求數據的傳輸時(shí)間和響應數據的傳輸時(shí)間,這個(gè)兩個(gè)時(shí)間取決于數據傳輸的速度,這里我們要講一個(gè)名詞“帶寬”。什么是帶寬,我們經(jīng)常說(shuō)帶寬10M,20M是什么意思?我的帶寬20M,這意味著(zhù)什么?

我們知道帶寬速度分為上行、下行速度,也就是上傳和下載的速度。帶寬20M對于用戶(hù)來(lái)說(shuō)則是下載速度20M(20×1024×1024比特率),換算成字節20M/8=2.5M。也就是說(shuō)20M的帶寬下載速度理論可達2.5M/s,而對于家庭用戶(hù)而言上傳速度一般比下載速度小的多,大約是不到十分之一。而對于網(wǎng)站服務(wù)器(企業(yè)用戶(hù))來(lái)說(shuō),則不然,一般上行速度等于下載速度。這也是運營(yíng)商根據實(shí)際需求分配的,畢竟用戶(hù)的主要需求是下載數據,而不是上傳數據。

整個(gè)流程從傳輸方式看就是:用戶(hù)發(fā)送請求數據(上傳),網(wǎng)站服務(wù)器接受請求數據(下載),網(wǎng)站服務(wù)器返回響應數據(上傳),用戶(hù)接受響應數據(下載)。對于用戶(hù)來(lái)說(shuō),上傳數據是很小的(Url參數),而下載數據是較大的(響應數據);對于服務(wù)器來(lái)說(shuō),下載數據是很小的(url參數),上傳數據是較大(響應數據)。

理解了這個(gè),我們可以解釋為什么有時(shí)用戶(hù)反映為什么自己的帶寬足夠,但打開(kāi)某些網(wǎng)站仍然很慢,就是因為盡管用戶(hù)的下載速度很快,但網(wǎng)站服務(wù)器的上傳速度很慢,這就像一個(gè)抽水管和一個(gè)出水管,不管抽水管再大,但出水管很小,同樣抽到的水量是有限的。

了解了這個(gè)原理我們來(lái)看怎么提高數據傳輸的速度,首先用戶(hù)的上傳、下載速度我們是無(wú)法決定的,我們能決定的是網(wǎng)站服務(wù)器的上傳、下載速度,所以我們可以做的是適當的增加服務(wù)器帶寬(帶寬是很貴的,盲目的增加只會(huì )增加不必要成本)。購買(mǎi)合適的帶寬需要根據網(wǎng)站業(yè)務(wù)特性、規模以及結合運維人員的經(jīng)驗來(lái)選擇。通??梢钥紤]的算法,即根據一次響應數據的大小,乘以PV數,除以對應的高峰時(shí)間段,從而大致估算出網(wǎng)站帶寬的需求。

下面我們繼續進(jìn)一步研究第二路徑:

大型網(wǎng)站 網(wǎng)站性能 代碼優(yōu)化

上圖表示用戶(hù)訪(fǎng)問(wèn)網(wǎng)站服務(wù)器時(shí)網(wǎng)絡(luò )的大致情況,從圖上可以看出假設網(wǎng)站服務(wù)器從電信網(wǎng)絡(luò )接入,而用戶(hù)A作為電信的寬帶用戶(hù),則可以通過(guò)電信骨干網(wǎng)快速的訪(fǎng)問(wèn)到網(wǎng)站服務(wù)器。用戶(hù)B,用戶(hù)C作為移動(dòng)和聯(lián)通用戶(hù)需要通過(guò)運營(yíng)商的互聯(lián)互通經(jīng)過(guò)較長(cháng)路徑才能訪(fǎng)問(wèn)到服務(wù)器。

針對這種情況,我們可以采取以下方法來(lái)優(yōu)化:

1、在各運營(yíng)商發(fā)達的地區的IDC(互聯(lián)網(wǎng)數據中心,可以理解成機房)部署網(wǎng)站服務(wù)器,各運營(yíng)商的用戶(hù)即可通過(guò)各自的骨干網(wǎng)訪(fǎng)問(wèn)服務(wù)器。

2、購買(mǎi)代理服務(wù),也就是原來(lái)聯(lián)通用戶(hù)需要通過(guò)聯(lián)通骨干網(wǎng)——>聯(lián)通互聯(lián)互通路由器——>電信骨干網(wǎng)——>網(wǎng)站服務(wù)器的過(guò)程。通過(guò)代理服務(wù),代理服務(wù)器直連到電信骨干網(wǎng),訪(fǎng)問(wèn)網(wǎng)站服務(wù)器。

3、在主要地區城市購買(mǎi)CDN服務(wù),緩存對應的數據,用戶(hù)可先從最近的CDN運營(yíng)商獲取請求數據。

第三路徑

第三路徑主要是網(wǎng)站服務(wù)器內部處理的過(guò)程,當中包括執行程序、訪(fǎng)問(wèn)文件、數據庫等資源。

這是對于我們來(lái)說(shuō)最可以發(fā)揮的地方:

1、使用緩存,根據需要使用本地緩存或分布式緩存;

2、使用異步操作,這種方式不僅可以提高性能,也提高了系統的擴展性;

3、代碼優(yōu)化;

4、存儲優(yōu)化;

緩存

如果緩存數據較少,可以利用OSCache實(shí)現本地緩存:

大型網(wǎng)站 網(wǎng)站性能 代碼優(yōu)化

當緩存數據過(guò)多時(shí),利用Memcached實(shí)現分布式緩存:

大型網(wǎng)站 網(wǎng)站性能 代碼優(yōu)化

Memcached實(shí)現分布式緩存,緩存服務(wù)器之間是互不通信的,也就是我們可以方便的通過(guò)增加Memcached服務(wù)器對系統進(jìn)行擴展。

異步操作

大型網(wǎng)站 網(wǎng)站性能 代碼優(yōu)化

使用同步請求的方式,在高并發(fā)的情況下,會(huì )對數據庫造成很大的壓力,也會(huì )讓用戶(hù)感覺(jué)響應時(shí)間過(guò)長(cháng)。異步請求方式,則可以快速的對用戶(hù)做出響應,而具體的數據庫操作請求,則通過(guò)消息隊列服務(wù)器發(fā)送給數據庫服務(wù)器,做具體的插入操作。插入操作的結果則已其他方式通知客戶(hù)端。例如一般在訂票系統當中,出票行為就是異步完成,最終的出票結果會(huì )以郵件或其他方式告知用戶(hù)。

代碼優(yōu)化

這里就不在詳細描述。

存儲優(yōu)化

大型網(wǎng)站中海量的數據讀寫(xiě)對磁盤(pán)造成很大壓力,系統最大的瓶頸還是在磁盤(pán)的讀寫(xiě)??梢钥紤]使用磁盤(pán)陣列、分布式儲存來(lái)改善存儲的性能。

性能的指標和測試

上面通過(guò)解析用戶(hù)訪(fǎng)問(wèn)網(wǎng)站的過(guò)程來(lái)思考怎么提高用戶(hù)感知的性能,對于用戶(hù)來(lái)言性能就是快和慢。但對于我們來(lái)說(shuō),不能這樣簡(jiǎn)單描述,我們需要去量化他,用一些數據指標去衡量它。這里講到幾個(gè)名詞:響應時(shí)間、并發(fā)量、吞吐量。

響應時(shí)間:就是用戶(hù)發(fā)出請求到收到響應數據的時(shí)間;

并發(fā)量:就是系統同時(shí)能處理多少用戶(hù)請求;

吞吐量:就是單位時(shí)間內系統處理的請求數量;

為了通俗的了解這三個(gè)概念,我們以高速公路的收費站為例子:響應時(shí)間是指一輛車(chē)經(jīng)過(guò)收費站的時(shí)間,也就是車(chē)輛從進(jìn)入收費站、付錢(qián)、開(kāi)閘、離開(kāi)收費站的時(shí)間;并發(fā)量是指這個(gè)收費站同時(shí)能通行多少輛車(chē),可以理解為收費站的出口數量。吞吐量是指:在一段時(shí)間內,這個(gè)收費站通往了多少了車(chē)。

這個(gè)例子不曉得恰不恰當。

對于性能測試來(lái)說(shuō),基本也是圍繞這些方面來(lái)測試,下圖說(shuō)明了性能測試的過(guò)程:

大型網(wǎng)站 網(wǎng)站性能 代碼優(yōu)化

左圖表示響應時(shí)間和并發(fā)用戶(hù)量的二維坐標圖,從圖上可以看出,并發(fā)用戶(hù)量在一定量增加時(shí),響應時(shí)間很短,并且沒(méi)有太大的起伏,這表示系統目前處于日常運行期,可以很快處理用戶(hù)請求(A點(diǎn)之前);隨著(zhù)并發(fā)量的增加,系統處于請求高峰期,但仍然可以有序的處理用戶(hù)請求,響應時(shí)間較日常有所增加(A、B之間);當并發(fā)量增加到一定數量時(shí),超過(guò)了系統的負載能力,系統處于瀕臨崩潰的邊緣(B、C之間),響應時(shí)間嚴重過(guò)長(cháng),直到系統崩潰。

右圖表示吞吐量與并發(fā)用戶(hù)量的二維坐標圖,可以看出,隨著(zhù)并發(fā)用戶(hù)量的增加,吞吐量逐漸增加;在并發(fā)量到達一定量時(shí),由于系統處理能力達到最大,吞吐量增加放緩;當并發(fā)量超過(guò)系統負載時(shí)(E點(diǎn)),系統處理能力開(kāi)始下降,不能再請求增加的用戶(hù)請求,吞吐量反而降低。

小結

本文通過(guò)用戶(hù)訪(fǎng)問(wèn)網(wǎng)站的過(guò)程,分析了三個(gè)路徑過(guò)程中提高性能的想法和手段,最后介紹了描述性能的指標,并對性能測試做了簡(jiǎn)要說(shuō)明。

亚洲美女丝袜制服av| 日韩久久无码免费毛片软件| 欧美一级黄色大片视频| 大又大又粗又硬又爽少妇毛片| 欧美顶级ppt免费模板软件| 亚洲国产精品成人av| 中国少妇xxxx做受| 日韩一级中文字幕免费在线| 国产成人综合亚洲欧美在线网站| 日韩精品视频美在线精品视频| 亚洲欧美精品一中文字幕| 亚州av男人的天堂| 久久婷婷色一区二区二区二| 一起草cad免费观看视频| 亚洲人成人一区二区三区| 亚洲a级性爱免费视频| 国产永久免费观看久久黄AV片| 日韩人妻无码一区二区三区综合部| 日韩人妻高清精品专区| 久久精品国产亚洲aV无码偷窥| 日韩av精品日韩在线观看| 国产精品毛片一区二区三区四区| 亚洲无码精品人妻无遮挡久久久九| 四虎影视免费永久在线观看| av中文字幕网免费观看| 妙玉被肉干高H潮文| 99久久99久国产黄毛片| 亚洲日韩在线观看| 国产精品亚洲а∨天堂免在线| 日本一二三不卡视频| 欧美日韩有精品一区二| 性色aⅤ无码久久久久久精品| 亚洲人成网站18禁止无码| 亚洲人妻无码一区二区三区在线| 日韩第一页在线观看| 99国产精品一区| 亚洲午夜av久久乱码| 亚洲精品一区二区三区新线路| 一区二区三区中文字幕脱狱者| 亚洲国产精品无码久久久久高潮| 亚洲久久超碰无码色中文字幕| 91精品国产综合久久精品| 日韩一级a毛大片在线视频| 国产成人毛片视频不卡在线| 三级伦理片在线高清观看| 国产一级毛片精品完整版| 欧美三级真做在线观看| 精品一线天无码视频在线| 中文字幕无码视频专区| 人妻夜夜添夜夜无码AV| 亚洲美女丝袜制服av| 亚洲欧美制服先锋| 亚洲人成无码网站久久99热国产| 日本一级婬片a片免费看软件| 婷婷国产天堂久久综合五月色| 亚州少妇无套内射激情视频| 日韩第一页在线观看| 天天爽夜夜爱| 国产一区二区三区视频观看| 亚洲中文久久精品无码WW16| 国产b片免费在线观看| 欧美交换性一区二区三区| 久久久久国产精品一区| 一区二区三区国模沟沟| 亚洲av日韩综合一区二区三区| 久久AV无码精品人妻出轨| 亚洲中文字幕精品久久吃奶水| 亚洲AV成人噜噜无码网站| 中文字幕在线免费观看色网视频| 免费a级毛片无码无遮挡| 欧美一区二区久久精品涩爱| av片在线观看免费| 国产精品久久久久9999| 欧美人妻福利精品一区二区| 国产放荡对白视频在线观看| 亚洲av无码一区二区一二区潮浪| 国产cd系列曦曦公厕在线| 亚洲欧美一区二区三区午夜寻欢| 亚洲色欲综合一区二区三区| 国产真实女人一级毛片| 欧美日本韩国国产在线观看| 无码熟妇人妻AV| 亚洲成a人片在线v| 成人性生交大片免费看国产| 在线免费观看羞羞视频| 国产精品久久综合青草亚洲?v| 亚洲韩国国产一级毛片| 在线观看中文字幕| 中文字幕版免费观看| 成熟丰满熟妇高潮XXXXX| 娇BBB搡BBBB揉BBBB| 无码高潮喷水在线国产| 亚洲欧美日韩国产精品一| 欧美日韩日本国产在线观看| 国产成人亚洲精品无码h在线| 亚洲精品无码久久毛片| 97精品国产露脸对白| 98精品国产高清在线xxxx天堂| 欧美一级摩擦片免费看| 日韩黄色经典av免费在线观看| 精品人妻人人做人人爽夜夜爽| 中文字幕亚洲电影在线| 波多野结衣之双女调教全集| 精選海量免費av影視資源| 深夜放纵内射少妇| 亚洲精品国产无码午夜| 日本三级很黄试看120秒| 亚洲字幕AV一区二区三区四区| 久久精品黄AA片一区二区三区| 在线视频免费观看| 永久免费精品影视网站| 中文在线√天堂| 永久免费av无码网站bt动漫| 亚洲国产中文在线视频| 91精品国产一区自在线拍| 国产欧美日韩精品在线一区| 亚洲国产精久久久久| 强奷乱码中文字幕熟女导航| 国产三级在线高清观看| 综合成人网友亚洲偷自拍| 亚洲日本婷婷久久| 玩弄丰满少妇XXXXX性多毛| 国产奶水涨喷在线播放| 亚洲精品一区二区三区早餐| 日韩 欧美中文字幕在线观看| 国产成人精品123视频| 亚洲人成无码www久久久| 久久久久一区二区三区四区五区| 国产精品久久久久久久久午夜福利| 亚洲日韩三级毛片| 欧洲精品码一区二区三区免费看| 亚洲香蕉网久久综合影视| 伊人久久大香线蕉综合热| 久久久综合香蕉尹人综合网| 三级黄影片大全性爱视| 亚洲欧美中文字幕在线亚洲| 亚洲在线视频观看| 国产成人亚洲精品乱码在线观看| 欧美满嘴射| 在线不卡亚洲中文字幕| 一区二区在线免费| 秘书激情办公室在线观看| 中文字幕看片在线a免费| 粉嫩av一区二区三区粉嫩| 国产v亚洲v天堂无码| 91欧美一区二区三区不卡| 曰批全过程免费视频观看软件下载| 人妻丝袜AV影音先锋| 国产成人无码精品一区在线| 午夜精品福利一区二区三区蜜桃| 国产精品交换| 亚洲免费精品性爱视频网站| 777米奇色狠狠888俺也去乱| 国产精品爽爽v?在线观看网站| 国产在线综合一区二区三区| 亚洲中文在线精品国产| 亚洲国产无码日韩中文一区二区| 丰满人妻一区二区三区无码av| 久久精品免视看国产成人2021| AV片免费大全在线观看不卡| 在线观看国产一区二三区| 亚洲午夜国产精品| 精品国产观看在线日本| 九九精品成人免费国产片|