亚洲欧美成人综合一区_国产精品一区二区无码_亚洲风情偷拍区_成?人免费无码视频在线看

在線客服與您一對一交流
當前位置: 主頁 > 行業(yè)新聞 > seo >

大型網(wǎng)站中重要的要素-性能以及怎么去做性能優(yōu)化

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

  什么是性能

  有人說性能就是訪問速度快慢,這是最直觀的說法,也是用戶的真實體驗。一個用戶從輸入網(wǎng)址到按下回車鍵,看到網(wǎng)頁的快慢,這就是性能。對于我們來說,需要去挖掘這個過程,因為這決定我們怎么去做性能優(yōu)化。西安網(wǎng)站建設推薦閱讀>>> 大型網(wǎng)站中重要的要素-性能以及怎么去做性能優(yōu)化

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

  

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

  我們把整個過程,分為三段路徑:

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

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

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

  第一路徑

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

  輸入域名發(fā)起請求,實質過程是:

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

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

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

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

  瀏覽器將數(shù)據(jù)進行計算渲染的過程:

  1、瀏覽器解析響應數(shù)據(jù);

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

  3、瀏覽器下載CSS樣式,并應用到DOM樹,進行渲染;

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

  5、顯示給用戶。

  從這個過程,我們可以找出不少可以優(yōu)化的地方。首先我們可以盡量控制頁面大小,使得瀏覽器解析的時間更短;并且將多個CSS文件、JS文件文件合并壓縮減少文件下載的次數(shù)和大小;另外注意將CSS放在頁面前面,JS訪問頁面后面,這樣便于頁面首先能渲染出來,再執(zhí)行js腳本,對于用戶來說有更好的體驗。最后我還可以設置瀏覽器緩存,下次訪問時從緩存讀取內容,減少http請求。西安網(wǎng)站建設推薦閱讀>>> 大型網(wǎng)站的Google排名策略

 

  該代碼說明了瀏覽器啟用了緩存并在5秒內不會再次訪問服務器。注意緩存的設置需要結合你的業(yè)務特性來適當配置。

  以下是京東商城的HTML簡圖:

  css樣式放在html前面,并且進行了合并。

  

  大多數(shù)的JS文件放在頁尾。

  

  第二路徑

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

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

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

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

  了解了這個原理我們來看怎么提高數(shù)據(jù)傳輸?shù)乃俣?,首先用戶的上傳、下載速度我們是無法決定的,我們能決定的是網(wǎng)站服務器的上傳、下載速度,所以我們可以做的是適當?shù)脑黾臃掌鲙挘◣捠呛苜F的,盲目的增加只會增加不必要成本)。購買合適的帶寬需要根據(jù)網(wǎng)站業(yè)務特性、規(guī)模以及結合運維人員的經驗來選擇。通??梢钥紤]的算法,即根據(jù)一次響應數(shù)據(jù)的大小,乘以PV數(shù),除以對應的高峰時間段,從而大致估算出網(wǎng)站帶寬的需求。西安做網(wǎng)站推薦閱讀>>> 西安做網(wǎng)站-大型網(wǎng)站建設需要注意哪些問題

  下面我們繼續(xù)進一步研究第二路徑:

  

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

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

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

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

  3、在主要地區(qū)城市購買CDN服務,緩存對應的數(shù)據(jù),用戶可先從最近的CDN運營商獲取請求數(shù)據(jù)。

  第三路徑

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

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

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

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

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

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

  緩存

  如果緩存數(shù)據(jù)較少,可以利用OSCache實現(xiàn)本地緩存:

  

  當緩存數(shù)據(jù)過多時,利用Memcached實現(xiàn)分布式緩存:

  

  Memcached實現(xiàn)分布式緩存,緩存服務器之間是互不通信的,也就是我們可以方便的通過增加Memcached服務器對系統(tǒng)進行擴展。

  異步操作

  

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

  代碼優(yōu)化

  這里就不在詳細描述。

  存儲優(yōu)化

  大型網(wǎng)站中海量的數(shù)據(jù)讀寫對磁盤造成很大壓力,系統(tǒng)最大的瓶頸還是在磁盤的讀寫。可以考慮使用磁盤陣列、分布式儲存來改善存儲的性能。

  性能的指標和測試

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

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

  并發(fā)量:就是系統(tǒng)同時能處理多少用戶請求;

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

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

  這個例子不曉得恰不恰當。

  對于性能測試來說,基本也是圍繞這些方面來測試,下圖說明了性能測試的過程:

  

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

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

  小結

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

  作者:cnblogs

相關文章:

  • 西安網(wǎng)站建設_西安做網(wǎng)站_西安網(wǎng)站制作——西安網(wǎng)絡公司...

  • 從企業(yè)建站角度講,最便捷、最適合企業(yè)的建站系統(tǒng)莫過于自助建站系統(tǒng),市場上可供選擇的自助建站平臺也是一搜一大把。這些自助建站平臺采用傻瓜式建站風格,容易上手,操作簡單方便...

  • 現(xiàn)在想做一個網(wǎng)站成本很低了,買個域名,買個幾十塊空間,弄個網(wǎng)站建設程序就可以開始你的玩耍了,如果你還想找成本更低的,可以看下面的分享。 如何創(chuàng)建網(wǎng)站一直都是很多朋友想要知...

  • 商城網(wǎng)站建設如何將吸引力提升 在信息如此豐富多樣的今天,商城網(wǎng)站建設如何才能夠在眾多的同類當中脫穎而出,獲得大眾的吸引和青睞呢?這其實是相關網(wǎng)站建設人員一直在思考的一個問...

  • 現(xiàn)在越來越多的企業(yè)重視網(wǎng)站的運營推廣,那怎樣推廣效果更好呢?西安蟠龍網(wǎng)絡小編認為沒用永恒不變得,而且要根據(jù)企業(yè)的具體情況選擇合適的推廣方式才是最好的,如果你又運營推廣的...

  • 隨著互聯(lián)網(wǎng)的發(fā)展,人們每時每刻已經離不開網(wǎng)絡,而網(wǎng)站是網(wǎng)絡的基本組成部分,可以這么說,網(wǎng)絡是由各種各樣的網(wǎng)站組成的,當下,網(wǎng)站是每個企業(yè)的標配,很多個人都有自己的網(wǎng)站,...

  • 網(wǎng)站現(xiàn)在是一個企業(yè)的標配,很多沒有網(wǎng)站的企業(yè)不清楚網(wǎng)站對企業(yè)有什么作用,那么今天西安蟠龍小編總結一下網(wǎng)站對企業(yè)都有哪些好處,希望看完之后您對網(wǎng)站有更深一層的認識。 一、低...

  • 現(xiàn)在網(wǎng)站對一個企業(yè)越來越重要了,網(wǎng)站不僅是一個公司必備的名片,而且有利于提升企業(yè)的品牌形象,低成本擴大公司銷售的一個重要渠道,可以將公司的業(yè)務和產品推向全國,那么公司想...

  • 在互聯(lián)網(wǎng)發(fā)展至今天,網(wǎng)站對于一個企業(yè)越來越重要,網(wǎng)站不僅能有效的提升企業(yè)品牌知名度,企業(yè)形象,也是一個企業(yè)的有力的銷售渠道,網(wǎng)絡營銷推廣做好了可以做全國的業(yè)務,那一個企...

  • 隨著互聯(lián)網(wǎng)發(fā)展的迅猛,網(wǎng)站建設市場競爭越來越大,魚龍混雜,出現(xiàn)智能建站、模板建站、定制建站等服務,很多朋友搞不清楚他們的區(qū)別,以及定制型網(wǎng)站有什么優(yōu)勢,今天西安蟠龍小編...

  • 公司:西安蟠龍網(wǎng)絡科技有限公司
  • 聯(lián)系人:張經理
  • 手機/微信:
  • Q Q: 點擊這里給我發(fā)消息
  • 地址:西安市雁塔區(qū)唐延南路11號逸翠園i都會