1. 程式人生 > >大型Web網站優化總結

大型Web網站優化總結

大型的網路網站優化總結<一>

我們先說大型網站都具備哪些特點:

  1. 高併發,大流量
  2. 高可用
  3. 海量資料
  4. 使用者分佈廣泛,網路情況複雜
  5. 安全環境惡劣
  6. 需求快速變更,釋出頻繁
  7. 漸進式發展

網站效能是決定我們如何去做優化,優化哪些方面

1.使用者:網站瀏覽速度的快慢(使用者體驗)通訊(網速)時間,查詢(資料庫)時間,解析(語言 - >瀏覽器)時間指的就是網站開啟的快慢
2.開發人員:系統的效能(響應延遲,併發數,吞吐量(I / O讀寫量),系統穩定性,高可用性);
3.運維人員:資源的利用率

優化一之瀏覽器優化

瀏覽器

1.減少HTTP請求(鉻谷歌代理店,火狐的火狐請求)

    js,css:每個js或css都不能讓其單獨算一個請求

    像js合併成一個或幾個檔案<link>引入common,body【方法:合併檔案】
    img小圖片(像li標籤的點,這寫點也是一個圖片,也是連結)引入雪碧圖的概念:即把每個小圖示定位到指定的位置,背景看成大圖
2.瀏覽使用器快取
    即一次性把所需的資料加入快取中
3.減少cookie的傳輸  

    name、value、expire、path、domain、secure
    name    必需。規定 cookie 的名稱。
    value    必需。規定 cookie 的值。 單個value值最大4KB
    expire    可選。規定 cookie 的過期時間。
    path    可選。規定 cookie 的伺服器路徑(作用率)。
    domain    可選。規定 cookie 的域名(有效期)。
    secure    可選。規定是否通過安全的 HTTPS 連線來傳輸 cookie。
    
    Safari(蘋果)不支援flash  但h5可以
    Firefox和Safari允許cookie多達4097個位元組,包括名(name)、值(value)和等號。
 Opera允許cookie多達4096個位元組,包括:名(name)、值(value)和等號。
 Internet Explorer允許cookie多達4095個位元組,包括:名(name)、值(value)和等號。
      注:
多位元組字元計算為兩個位元組。在所有瀏覽器中,任何cookie大小超過限制都被忽略,且永遠不會被設定。
      注:  瀏覽器一般只允許存放300個Cookie,每個站點最多存放50個Cookie,每個Cookie的大小限制為4KB。

4.啟用壓縮

    JS和CSS如:鉻和百度樣式的原始碼只有一行(減少解析空格和換行的時間)
    把空格和換行都去除(線上CSS格式化工具即可)

5.js放最下面,CSS放最上面,載入錯誤只會少了一塊空白, 載入報錯會載入不出來

6. CSS雪碧的基本原理是把你的網站上用到的一些圖片整合到一張單獨的圖片中,從而減少你的網站的HTTP請求數量。

優化二之網路運營商優化

網路運營商
CDN原理:
    .CDN是一個經濟的策略性部署的整體系統,從技術上全面解決由於網路頻寬小,使用者訪問量大,網點分佈不均而產生的使用者訪問網站響應速度慢的根本原因
    CDN目的是通過在現有的網際網路中增加一層新的網路架構,將網站的內容釋出到最接近使用者的網路“邊緣”,使使用者可以就近取得所需的內容,解決網際網路網路擁塞狀況,提高使用者訪問網站的響應速度
.CDN內容分發網路,本質是一個快取,得花錢買部署在網路運營商(網通和電信,雙網通)的機房那裡該節點部署區域和數量加快站點是密切相關的重要加快域名部分快取:是指資料儲存在相對的I / O操作較快的介質中。

好處:
節約時間:
    1.計算時間
    2.讀取時間
    3.傳輸時間
IP:我們訪問網站時,IP記錄的次數
PV:指頁面訪問的次數

壞處:
    1.花錢
    2.資料不一致,容易引起髒讀。

    髒讀:事務1更新了記錄,但沒有提交,事務2讀取了更新後的行,然後事務T1回滾,現在T2讀取無效。

優化三之快取(合理使用快取)

1.快取熱點:大量的人看

2.高讀寫比(至少是2:1快取才有意義),不經常改變高讀寫比(2/1)的熱點
3.快取內容原則:八二原則(80%的訪問量落在20 %的頁面上)
需要注意的事項:  快取穿透,快取預熱,快取雪崩等問題。  

快取雪崩

快取雪崩可能是因為資料未載入到快取中,或者快取同時時大面積的失效,從而導致所有請求都去查資料庫,導致資料庫CPU和記憶體負載過高,甚至宕機。
解決思路:
1,採用加鎖計數,或者使用合理的佇列數量來避免快取失效時對資料庫造成太大的壓力。這種辦法雖然能緩解資料庫的壓力,但是同時又降低了系統的吞吐量
0.2,分析使用者行為,儘量讓失效時間點均勻分佈避免快取雪崩的出現
3,如果是因為某臺快取伺服器宕機,可以考慮做主備,比如:Redis的主備,但是雙快取涉及到更新事務的問題,更新可能讀到髒資料,需要好好解決。

快取穿透

快取穿透是指使用者查詢資料,在資料庫沒有,自然在快取中也不會有。這樣就導致使用者查詢的時候,在快取中找不到,每次都要去資料庫中查詢。
解決思路:
1 ,如果查詢資料庫也為空,則直接設定一個預設值存放到快取,這樣第二次到緩衝中獲取就有值了,而不會繼續訪問資料庫,這種辦法最簡單粗暴
2,根據快取資料的關鍵的規則。例如我們公司是做機頂盒的,快取資料以蘋果為重點,蘋果是有規則,如果不符合規則就過濾掉,這樣可以過濾一部分查詢。在做快取規劃的時候,關鍵有一定規則的話,可以採取這種辦法。這種辦法只能緩解一部分的壓力,過濾和系統無關的查詢,但是無法根治
3,採用布隆過濾器,將所有可能存在的資料雜湊到一個足夠大的BitSet中,不存在的資料將會被攔截掉,從而避免了對底層儲存系統的查詢壓力。關於布隆過濾器,詳情檢視:基於BitSet的布隆過濾器(Bloom Filter)

快取預熱(洗澡先燒熱水)

單機網路系統情況下比較簡單。
解決思路:
1,直接寫個快取重新整理頁面,上線時手工操作下
2,資料量不大,可以在WEB系統啟動的時候載入

3,搞個定時器定時重新整理快取,或者由使用者觸發都行。

分散式快取系統,如Memcached,Redis,比如快取系統比較大,由十幾臺甚至幾十臺機器組成,這樣預熱會複雜一些。

memcache優點:簡單的通訊協議;豐富的客戶端程式;高效能的優化協議(libevent支援事件觸發的網路通訊程式庫)

解決思路:
1,寫個程式去跑
2,單個快取預熱框架。
注:快取預熱的目標就是在系統上線前,將資料載入到快取中。

相關推薦

大型Web網站優化總結

大型的網路網站優化總結<一> 我們先說大型網站都具備哪些特點: 高併發,大流量高可用海量資料使用者分佈廣泛,網路情況複雜安全環境惡劣需求快速變更,釋出頻繁漸進式發展 網站效能是決

Python Flask 快速構建高性能大型web網站項目實戰

空間 實現 處理 mac os 環境搭建 課程 3.1 4.6 統計 Python Flask 快速構建高性能大型web網站項目實戰視頻【下載地址:https://pan.baidu.com/s/1cUggNbUvptYz5vvwBhsdrg 】 作為最最流行的Python

大型Web網站架構演變

活動 let isp ali ring 裝載 模式 增加 目的 前言 我們以Java Web為例,來搭建一個簡單的電商系統,看看這個系統可以如何一步步演變。該系統具備的功能: 用戶模塊:用戶註冊和管理 商品模塊:商品展示和管理 交易模塊:創建交易和管理 正文 階段一

高效能web網站優化原則11——避免重定向

重定向(redirect)將使用者從一個URL路由到另一個URL。 重定向的型別:當web伺服器向瀏覽器返回一個重定向時,響應中就會包含一個3xx的狀態碼,表示使用者代理必須進一步操作才能完成請求,下面是幾種狀態碼: • 300 Multiple Choices (based

關於大型網站技術演進的思考(十九)--網站靜態化處理—web前端優化—上(11)

對於一個網路請求的處理,是由兩個不同型別的操作共同完成,這兩個操作是CPU的計算操作和IO操作,如果我們以處理效率角度來評判這兩個操作,CPU操作效率是光速的,而IO操作就不盡然了,計算機裡的IO操作就是對儲存資料介質的操作,計算機裡有如下幾個介質可以儲存資料,它們分別是:CPU的一級快取、二級快取、記憶

關於web前端網站優化

follow 加載信息 form out loaded 一次 什麽 ext 頻繁 不知道是哪位大牛的文章,轉過來嘻嘻。 作者:斯迪鏈接:https://www.zhihu.com/question/21658448/answer/18903129來源:知乎著作權歸作者所有。

web前端性能優化總結

函數定義 network 繼承 執行 strong bigpipe view pan odin 1em=16px(但不完全是) em會繼承父元素的字體大小。ie 部分瀏覽器不支持em。 rem繼承根元素的字體大小html。 px和rem vue裏面用jq只能在mounte

web網站集群之企業級Nginx Web服務優化詳解(二)

監牢模式 優雅顯示 防盜鏈 非法解析 12 配置Nginx gzip壓縮實現性能優化 100k ---- 1s 90k 100k ---- 5s 10k gzip on; gzip_min_length 1k; gzip_buffers

web網站性能優化整理

per 搜索引擎 use 預加載 house 文件 連接 jpeg 輸出 .tab { width: 600px; table-layout: fixed; border-collapse: collapse } .tab th,.tab td { text-align

效能優化(《建設高效能網站總結

1.減少http請求 圖片地圖(指定area) 合成雪碧圖(限定顯示區域,再依次移動圖片),現在常用svg或icon-font 內聯圖片(src屬性內寫入base64檔案資訊) 合併js和css檔案 2.設定CDN(使使用者就近訪問伺服器上的靜態資源)3.設定

PHP大型入口網站核心技術之MySql優化

大型入口網站核心技術-Mysql優化01 關鍵技術 大型入口網站核心技術-Mysql優化02 表的設計 大型入口網站核心技術-Mysql優化03 慢查詢(一) 大型入口網站核心技術-Mysql優化04 慢查詢(二) 大型入口網站核心技術-Mysql優化05 慢查

大型網站架構總結網站核心架構要素

架構的含義: 一種比較通俗的說法是"最高層次的規劃,難以改變的決定"這些規劃和決定奠定了事物未來發展的方向和最終藍圖。具體到軟體架構,系統的各個重要組成部分及其關係構成了系統的架構,這些組成部分可以是具體的功能模組,也可以是非功能的設計和決策,他們相互關聯組成一個整體。共同

Web效能優化系列:藉助響應式圖片來改進網站圖片顯示

開始使用 <picture> 元素 響應式網頁設計太棒了,它改變了我們向手機端使用者呈現內容的方式,無論使用者使用何種尺寸的手機,我們都能夠為其提供定製化的體驗。響應式網頁設計使用起來很靈活,也容易上手。然而,如果沒有正確使用,它會對網頁效能帶來負面影響。 用於在

Web網站新增IP過濾功能實踐總結(C#)

         這項任務是從米老師(米新江的部落格)那裡接手的。目的是給考試系統加上限制,在區域網內,防止同學從考試以外的地點登入。          過濾IP聽起來比較容易,最終的效果就是驗證一下IP,再決定是否有許可權訪問考試系統。但是要做的好就不那麼容易了。接下來總

PHP 大型網站優化 大資料大併發大流量

什麼是大型網站? 大型網站要滿足一下標準. pv(page views)值, 頁面瀏覽量,一個網站的所有頁面,在24小時內被瀏覽的總的次數, 一般說 到千萬. uv(unique visitor) 獨立訪客: 一個網站的24小時內,有多少個使用者來訪問該網站, 一般說 到10萬

web前端效能優化總結

轉自:http://www.2cto.com/kf/201604/498725.html          網站的劃分一般為二:前端和後臺。我們可以理解成後臺是用來實現網站的功能的,比如:實現使用者註冊,使用者能夠為文章發表評論等等。而前端呢?其實應該是屬於功能的表現。並且

web開發的18個網站優化技巧(好不容易才收藏到的乾貨)

快速的頁面載入對提升搜尋引擎排名、網站轉化率和整體的使用者體驗是非常重要的。網站頁面的載入速度也是衡量網站效能的一個重要因素。 如果網站不是以最好的效能在執行,遲緩的載入會讓你在低的排名和搜尋流量上花費更大的代價。頁面的載入速度會對使用者的行為和轉化率產生很大的影響。

(轉)雅虎WEB前端網站優化 -- 34條軍規

雅虎給出了優化網站載入速度的34條法則(包括Yslow規則22條) 詳細說明,下載轉發 ponytail 的譯文(來自帕蘭映像)。 1.Minimize HTTP Requests 減少HTTP請求 圖片、css、script、flash等等這些都會增加http請求數,減少這些元素的數量就能減少響應時間。

Web前端優化網站效能

1. 減少HTTP請求數一個完整的請求都需要經過DNS存址、與伺服器建立連線、傳送資料、等待伺服器響應、接收資料這樣一個漫長而複雜的過程。資源上由於每個請求都要攜帶資料,因此每個請求都需要佔用頻寬。另外,由於瀏覽器進行併發請求的請求數是有上限的,因此請求數多了以後,瀏覽器需要

linux 網站伺服器優化 web server優化

伺服器的優化是我們最小化安裝系統時應該做的事情。其實,在做這項工作之前,我們就應該根據實際應用需求來選購Linux伺服器,然後有所偏重地選擇硬體,比如我們應該根據伺服器的應用來確定是需要RAID5,還是單塊硬碟等。 根據伺服器應用來選購伺服器 無論是租用伺服器還是託管都要面臨一個問題,那就是選擇伺服器的硬體