您好,登錄后才能下訂單哦!
通過以上圖,可以從三個方面來優化HTTP的性能。
1.服務器
衡量服務器性能的指標,主要有以下幾個:
a.吞吐量(或TPS、RPS、QPS)
b.并發數
c.響應時間
d.資源利用率(CPU、內存、硬盤、網絡)
-->提高吞吐量,吞吐量越高,服務器的性能越好!
-->提高并發數,支持的并發數越大,服務器的性能越好!
-->降低響應時間,響應時間越短,服務器的性能越好!
-->合理利用服務器資源,過高肯定是不行,過低也有可能是存在問題的!
-->Linux服務器的監控工具主要有top、sar、glances等
2.客戶端
因為數據都要通過網絡從服務器獲取,所以它最基本的性能指標就是:延遲。
所謂的“延遲”其實就是“等待”,等待數據到達客戶端時所花費的時間。
延遲的原因,有幾點:
a.距離:由于地理距離導致的延遲,是無法客服的,比如訪問數千公里外的網站。
b.帶寬
c.DNS查詢(如果域名在本地沒有緩存的話)
d.TCP握手(必須要經過 SYN、SYN/ACK、ACK 三個包之后才能建立連接)
-->對于 HTTP 性能優化,有一個專門的測試網站:WebPageTest,或使用瀏覽器的開發者工具
-->一次 HTTP“請求 - 響應”的過程中延遲的時間是非常大的,有可能會占到90%以上
-->所以,客戶端優化的關鍵,降低延遲
3.傳輸鏈路(客戶端和服務器之間的傳輸鏈路)
使用CDN等技術,總之,要增加帶寬,降低延遲,優化傳輸速度。
-----------------------------------------------具體的優化手段----------------------------------------------------------
主要是優化服務端的性能。
1.前端:可以利用PageSpeed等工具進行檢測并根據提示進行優化。
2.后端:主要有以下幾方面
a.硬件、軟件或服務
比如更換強勁的CPU、內存、磁盤、帶寬等,比如使用CDN
b.服務器選擇、參數調優
選用高性能的服務器,比如Nginx,它強大的反向代理能力實現“動靜分離”,動態頁面交給Tomcat等,靜態資源交給Nginx
另外,Nginx自身也有可以調優的參數,比如說禁用負載均衡鎖、增大連接池,綁定 CPU 等
對于 HTTP 協議一定要啟用長連接,因為TCP 和 SSL 建立新連接的成本非常高,可能會占到客戶端總延遲的一半以上
TCP 的新特性“TCP Fast Open“,類似 TLS 的“False Start”,可以在初次握手的時候就傳輸數據,盡可能在操作系統和 Nginx 里開啟這個特性,減少外網和內網里的握手延遲。
使用HTTP協議內置的“數據壓縮”編碼,可以選擇標準的 gzip,也可以嘗試新的壓縮算法 br
不過在數據壓縮的時候應當注意選擇適當的壓縮率,不是壓縮的越厲害越好
c.緩存
網站系統內部,可以使用 Memcache、Redis等專門的緩存服務,把計算的中間結果和資源存儲在內存或者硬盤里
Web 服務器首先檢查緩存系統,如果有數據就立即返回給客戶端
另外,CDN 的網絡加速功能就是建立在緩存的基礎之上的,可以這么說,如果沒有緩存,那就沒有 CDN。
利用好緩存功能的關鍵是理解它的工作原理,為每個資源都添加 ETag 和 Last-modified字段,再用 Cache-Control、Expires 設置好緩存控制屬性。
其中最基本的是 max-age 有效期,標記資源可緩存的時間。對于圖片、CSS 等靜態資源可以設置較長的時間,比如一天或者
一個月,對于動態資源,除非是實時性非常高,也可以設置一個較短的時間,比如 1 秒或者 5 秒。這樣一旦資源到達客戶端,就
會被緩存起來,在有效期內都不會再向服務器發送請求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。