淺析淺析網站性能

2016-10-30    分類: 網站建設

一、不同角度的網站性能普通用戶認為的網站性能

網站性能對于普通用戶來說,最直接的體現(xiàn)就是響應時間。用戶在瀏覽器上直觀感受到的網站響應速度,即從客戶端發(fā)送請求,到服務器返回響應內容的時間。 做為網站開發(fā)人員來說,網站性能通常會和普通的用戶理解的不一樣。 普通用戶感受到的網站性能,并不只是由網站服務器決定的。它還包括客戶端計算機和服務器通信的時間,網站服務器處理響應的時間,客戶端瀏覽器構造請求解析響應數(shù)據(jù)的時間。甚至,不同的計算機性能、不同瀏覽器解析HTML的速度、不同網絡運營商提供的網絡帶寬房屋的差異,這些都會導致用戶感受到響應時間,可能大于網站服務器處理請求的時間。

開發(fā)人員認為的網站性能

開發(fā)人員關注的主要是服務器應用程序本身,以及相關配套系統(tǒng)的性能。包括并發(fā)處理能力、系統(tǒng)穩(wěn)定性、響應延遲等技術指標。 對性能優(yōu)化的主要手段,包括使用緩存加速數(shù)據(jù)讀取,使用集群提高數(shù)據(jù)吞吐能力,使用異步消息加快請求響應,使用代碼改善程序性能。

運維人員認為的網站性能

運維人員關注的主要是服務器基礎設施和資源利用率。如服務器硬件的配置、網絡運營商的帶寬、數(shù)據(jù)中心的網絡架構等。主要優(yōu)化手段有使用高性價比的服務器、建設優(yōu)化骨干網絡、利用虛擬化技術優(yōu)化資源利用等。

二、性能的指標

從開發(fā)人員的角度,網站性能的指標主要有并發(fā)數(shù)和響應時間。

并發(fā)數(shù)

并發(fā)數(shù)是指系統(tǒng)能夠處理請求的數(shù)量,對于網站服務器而言,并發(fā)數(shù)也就是網站并發(fā)用戶數(shù),指同時提交請求的用戶數(shù)目。 與并發(fā)數(shù)相對應的還有網站在線用戶數(shù)(登錄用戶數(shù))和網站用戶數(shù)(一般指注冊用戶數(shù))。他們的關系一般是:網站用戶數(shù)>網站用戶在線數(shù)>網站用戶并發(fā)數(shù)

響應時間

響應時間是最重要的性能指標,直接反映了系統(tǒng)的快慢。

常見的系統(tǒng)操作響應時間[td]

操作 響應時間

打開一個網站 幾秒

在數(shù)據(jù)庫中查詢一條記錄(有索引) 十幾毫秒

機械磁盤一次尋址定位 4毫秒

從機械磁盤順序讀取1MB數(shù)據(jù) 2毫秒

從SSD磁盤順序讀取1MB數(shù)據(jù) 0.3毫秒

從遠程分布式緩存Redis讀取一個數(shù)據(jù) 0.5毫秒

從內存中讀取1MB數(shù)據(jù) 十幾微秒

網絡傳輸2KB數(shù)據(jù) 1微秒

三、性能的優(yōu)化

對于開發(fā)人員來說,網站性能優(yōu)化一般包括Web前端性能優(yōu)化、應用服務器性能優(yōu)化、存儲服務器性能優(yōu)化三類。

Web前端性能優(yōu)化

1、減少http請求 http協(xié)議是無狀態(tài)的應用層協(xié)議,意味著每次http請求都需要建立通信鏈路、進行數(shù)據(jù)傳輸,而在服務器端,每個http請求都需要啟動獨立的線程去處理。減少http請求的數(shù)目可有效提高訪問性能。 減少http的主要手段是合并CSS、合并javascript、合并圖片。 2、使用瀏覽器緩存 對一個網站而言,CSS、javascript、logo、圖標,這些靜態(tài)資源文件更新的頻率都比較低,而這些文件又幾乎是每次http請求都需要的。如果將這些文件緩存在瀏覽器中,可以極好的改善性能。通過設置http頭中的cache-control和expires的屬性,可設定瀏覽器緩存,緩存時間可以自定義。 3、啟用壓縮 在服務器端對文件進行壓縮,在瀏覽器端對文件解壓縮,可有效減少通信傳輸?shù)臄?shù)據(jù)量。如果可以的話,盡可能的將外部的腳本、樣式進行合并,多個合為一個。文本文件的壓縮效率可達到80%以上,因此HTML、CSS、javascript文件啟用GZip壓縮可達到較好的效果。但是壓縮對服務器和瀏覽器產生一定的壓力,在網絡帶寬良好,而服務器資源不足的情況下要綜合考慮。 4、CSS放在頁面最上部,javascript放在頁面最下面 瀏覽器會在下載完成全部CSS之后才對整個頁面進行渲染,因此最好的做法是將CSS放在頁面最上面,讓瀏覽器盡快下載CSS。 Javascript則相反,瀏覽器在加載javascript后立即執(zhí)行,有可能會阻塞整個頁面,造成頁面顯示緩慢,因此javascript最好放在頁面最下面。

應用服務器優(yōu)化

應用服務器也就是處理網站業(yè)務的服務器,網站的業(yè)務代碼都部署在這里,主要優(yōu)化方案有緩存、異步、集群等。 1、合理使用緩存 當網站遇到性能瓶頸時,第一個解決方案一般是緩存。在整個網站應用中,緩存幾乎無處不在,無論是客戶端,還是應用服務器,或是數(shù)據(jù)庫服務器。在客戶端和服務器的交互中,無論是數(shù)據(jù)、文件都可以緩存,合理使用緩存對網站性能優(yōu)化非常重要。 緩存一般用來存放那些讀寫次數(shù)比較高,變化較少的數(shù)據(jù),比如網站首頁的信息、商品的信息等。應用程序讀取數(shù)據(jù)時,一般是先從緩存中讀取,如果讀取不到或數(shù)據(jù)已失效,再訪問磁盤數(shù)據(jù)庫,并將數(shù)據(jù)再次寫入緩存。 緩存的基本原理是將數(shù)據(jù)存儲在相對有較高訪問速度的存儲介質中,比如內存。一方面緩存訪問速度快,另一方面,如果緩存的數(shù)據(jù)是需要經過計算處理得到的,那使用緩存還可以減少服務器處理數(shù)據(jù)的計算時間。 使用緩存并不是沒有缺陷:內存資源是比較寶貴的,不可能將所有數(shù)據(jù)都緩存,一般頻繁修改的數(shù)據(jù)不建議使用緩存,這會導致數(shù)據(jù)不一致。 網站數(shù)據(jù)緩存一般遵循二八定律,即80%的訪問都在20%的數(shù)據(jù)上。所以,一般將這20%的數(shù)據(jù)緩存,可以起到改善系統(tǒng)性能,提高服務器讀取效率。 2、異步操作 使用消息隊列將調用異步化,可以改善網站系統(tǒng)的性能。 在不使用消息隊列的情況下,用戶的請求直接寫入數(shù)據(jù)庫,在高并發(fā)的情況下,會對數(shù)據(jù)庫造成非常大的壓力,也會延遲響應時間。 在使用消息隊列后,用戶請求的數(shù)據(jù)會發(fā)送給消息隊列服務器,消息隊列服務器會開啟進程,將數(shù)據(jù)異步寫入數(shù)據(jù)庫。消息隊列服務器的處理速度遠超過數(shù)據(jù)庫,因此用戶的響應延遲可得到改善。 消息隊列可以將短時間內的高并發(fā)產生的事務消息,存儲在消息隊列中,從而提高網站的并發(fā)處理能力。在電商網站的促銷活動中,合理使用消息隊列,可以抵御短時間內用戶高并發(fā)的沖擊。 3、使用集群 在網站高并發(fā)訪問的情況下,使用負載均衡技術,可以為一個應用構建由多臺服務器組成的服務器集群,將并發(fā)訪問請求,分發(fā)到多臺服務器上處理,避免單一服務器因負載過大,而導致響應延遲。 4、代碼優(yōu)化 網站的業(yè)務邏輯代碼主要部署在應用服務器上,需要處理復雜的并發(fā)事務。合理優(yōu)化業(yè)務代碼,也可以改善網站性能。 任何web網站都會遇到多用戶的并發(fā)訪問,大型網站的并發(fā)用戶會達到數(shù)萬。每個用戶請求都會創(chuàng)建一個獨立的系統(tǒng)進程去處理。由于線程比進程更輕量,占用資源更少,所以,目前主流的web應用服務器都采用多線程的方式,處理并發(fā)用戶的請求,因此,網站開發(fā)多數(shù)都是多線程編程。 使用多線程的另一個原因是服務器有多個CPU,現(xiàn)在手機都到了8核CPU的時代,一般的服務器至少是16核CPU,要想大限度的使用這些CPU,必須啟動多線程。 那么,啟動多少線程合適呢? 啟動線程數(shù)和CPU內核數(shù)量成正比,和IO等待時間成正比。如果都是計算型的任務,那么線程數(shù)最多不要超過CPU內核數(shù),因為啟動再多,CPU也來不及調用。如果任務是等待讀寫磁盤、網絡響應,那么多啟動線程會提高任務并發(fā)度,提高服務器性能。 或者用個簡化的公式來描述: 啟動線程數(shù) = (任務執(zhí)行時間/(任務執(zhí)行事件 - IO等待時間)) * CPU內核數(shù) 5、存儲優(yōu)化 數(shù)據(jù)的讀寫是網站處理并發(fā)訪問的另一瓶頸。使用緩存雖然可以解決一部分數(shù)據(jù)讀寫壓力,但很多時候,磁盤仍然是系統(tǒng)最嚴重的瓶頸。而且磁盤是網站最重要的資產,磁盤的可用性和容錯性也至關重要。 機械硬盤和固態(tài)硬盤 機械硬盤是目前最常用的硬盤,通過馬達帶動磁頭到指定磁盤的位置訪問數(shù)據(jù),每次訪問數(shù)據(jù)都需要移動磁頭,在讀取連續(xù)數(shù)據(jù)和隨機訪問上,磁頭移動的次數(shù)相差巨大,因此機械硬盤的性能表現(xiàn)差別巨大,讀寫效率較低。而在網站應用中,大多數(shù)數(shù)據(jù)的訪問都是隨機的,在這種情況下,固態(tài)硬盤具有更高的性能。但目前固態(tài)硬盤在工藝上、數(shù)據(jù)可靠性上還有待提升,因此固態(tài)硬盤的使用尚未普及,從發(fā)展趨勢看,取代機械硬盤應該是遲早的事情。

分享名稱:淺析淺析網站性能
當前地址:http://www.muchs.cn/news/54792.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站建設、網站收錄網站營銷、響應式網站、定制網站搜索引擎優(yōu)化

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網站建設