大型網站技術架構(四)--網站的高效能架構
網站效能是客觀的指標,可以具體體現到響應時間、吞吐量、併發數、效能計數器等技術指標。
1、效能測試指標
1.1 響應時間
指應用執行一個操作需要的時間,指從發出請求到最後收到響應資料所需要的時間。如下列出了系統常用的操作響應時間表.
操作 |
響應時間 |
開啟一個網站 |
幾秒 |
資料庫查詢一條記錄(有索引) |
十幾毫秒 |
機械磁碟一次定址定位 |
4毫秒 |
從機械磁碟順序讀取1M資料 |
2毫秒 |
從SSD磁碟順序讀取1M資料 |
0.3毫秒 |
從遠端分散式換成Redis讀取一個資料 |
0.5毫秒 |
從記憶體讀取1M資料 |
十幾微妙 |
Java程式本地方法呼叫 |
幾微妙 |
網路傳輸2Kb資料 |
1微妙 |
實踐中計算響應時間通常是通過平均時間計算的平均值。
1.2併發數
指系統能夠同時處理的請求的數目,這個數字也反映了系統的負載效能。對於網站而言,併發數指網站使用者同時提交請求的使用者數目。
網站系統使用者數>網站線上使用者數>網站併發使用者數
1.3吞吐量
指單位時間內系統處理的請求數量,體現系統的整體處理能力。對於網站,可用“請求數/秒”或“頁面數/秒”或“訪問人數/天”或“處理業務數/小時”等來衡量。
TPS(每秒事物數)是吞吐量的一個常用量化指標。刺蝟還有HPS(每秒HTTP請求數)、QPS(每秒查詢數)。
1.4效能計數器
指作業系統的一些資料指標如System load(系統負載),CPU使用率、記憶體使用率、磁碟等使用情況。
2、效能優化策略
根據網站分層架構,可分為Web前端效能優化、應用伺服器效能優化、儲存伺服器效能優化。
2.1 Web前端優化
2.1.1 瀏覽器訪問優化
- 減少HTTP請求數,主要可通過合併CSS,JavaScript、圖片。
- 使用瀏覽器端快取。在某些時候,靜態資原始檔編寫需要及時應用到客戶端瀏覽器,這種情況下,可通過改變檔名來實現。
- 啟用頁面壓縮,文字檔案的壓縮效率可達80%以上。
- CSS放在頁面最上面,JavaScript放在頁面最下面
- 減少Cookie傳輸。可以考慮使用獨立域名來傳送Cookie等。
2.1.2 CDN加速
CDN的本質仍然是一個快取,只是部署在離使用者最近的伺服器上,一般快取的都是靜態資源。
2.1.3 反向代理
除了能夠保護網站安全的作用以及負載均衡的作用外,反向代理還能夠提供快取作用(動態資源)。
2.2 應用伺服器效能優化
應用伺服器就是處理網站業務的伺服器,網站的業務程式碼都部署在這裡,主要優化手段有快取、叢集、非同步等。
2.2.1 分散式快取
快取主要用來存放哪些讀寫比很高、很少變化的資料。
分散式快取指快取部署在多個伺服器組成的叢集中,以叢集方式提供快取服務,其具體架構有兩種,一種是以JBoss Cache虛擬碼的需要更新同步的分散式快取, 一種是以Memcached為代表的不互相通訊的分散式快取。
Jboss Cache 的分散式快取在叢集中的所有伺服器中儲存相同的快取資料,當某臺伺服器有快取更新的時候,會通知叢集中其他機器跟新快取資料。優點是應用程式可以 從本地快速的獲取快取資料,但當叢集規模較大的時候,快取更新資訊需要通過到叢集所有機器,其代價可想而知。
大型網站需要的快取資料一般都很大,可能會有TB的記憶體佔用,這時候就的使用Memcached,是一中互不通訊的架構,每臺儲存的快取資料可以不一樣。
2.2.2 非同步操作
為了改善網站的擴充套件性,可以使用訊息佇列將呼叫非同步化。
2.2.3 使用叢集
在網站高併發訪問的情況下,使用負載均衡技術為一個應用構建一個由多臺伺服器組成的叢集,將併發訪問請求分發到多臺伺服器上處理。
2.2.4 程式碼優化
程式碼優化主要涉及多執行緒、資源複用(物件池或單例)、資料結構和垃圾回收。
2.3 儲存效能優化
可以考慮使用分散式儲存、openfiler、磁碟陣列、HDFS(Hadoop)。
相關文章
- 大型網站技術架構(四)--核心架構要素網站架構
- 大型網站技術架構——2. 網站架構模式網站架構模式
- 大型網站技術架構(三)--架構模式網站架構模式
- 大型網站架構利器-CDN技術網站架構
- 大型網站技術架構核心原理(1)網站架構
- 網站技術架構網站架構
- 一張圖看懂大型網站技術架構網站架構
- 讀書筆記-大型網站技術架構筆記網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第4篇 架構師(附 大型網站架構技術一覽)網站架構筆記
- 乾貨 | 大型網站專案架構技術一覽網站架構
- 大型網站架構模式筆記網站架構模式筆記
- 大型網站系統架構演化網站架構
- 大型網站架構之我見網站架構
- 大型網站架構演化歷程網站架構
- 大型網際網路公司網站架構背後的基礎技術2019網站架構
- 大型網站背後的高效能系統架構設計網站架構
- 讀書筆記 之《軟體架構設計: 大型網站技術架構與業務架構融合之道》筆記架構網站
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第2篇 架構網站架構筆記
- 大型網站架構演化發展歷程網站架構
- 大型網站架構演化發展歷程 - 上網站架構
- 思維導圖形式帶你讀完《大型網站技術架構》上網站架構
- 思維導圖形式帶你讀完《大型網站技術架構》中網站架構
- 《大型網站技術架構核心原理與案例分析》讀書筆記(二)網站架構筆記
- 網站架構設計網站架構
- 阿里面試技術手冊(二):大型網站架構演化發展歷程阿里面試網站架構
- 大型網站的可伸縮性架構如何設計?網站架構
- 大型分散式網站架構實戰專案分析分散式網站架構
- 網站技術架構與效能優化,附高效能思維導圖網站架構優化
- 【網站架構13/100】一步步帶你,如何網站架構網站架構
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第3篇 案例網站架構筆記
- 《大型網站技術架構:核心原理與案例分析》讀書筆記 - 第1篇 概述網站架構筆記
- 大型網站架構演進的五大階段盤點網站架構
- 初入探秘:大型網站架構設計與方法總結網站架構
- 輕鬆幾招你也可以架構高效能網站架構網站
- 乾貨:記一次JavaWeb網站技術架構總結JavaWeb網站架構
- 大型網際網路架構概述架構
- [譯] 多網站專案的 CSS 架構網站CSS架構
- 高併發網站架構設計網站架構
- 2024最流行的網站架構----邊緣平臺架構:概念與產品網站架構