本文僅作爲學習記錄,非商業用途,侵刪,如需轉載需作者同意。
影響系統性能的指標有哪些?關鍵的環節有哪些?
一、域名DNS解析
提升域名DNS解析的方式:
DNS緩存和DNS預解析:
- 增大域名的TTL值,增大DNS服務器緩存這個域名的時間。可以提升緩存命中率
- 使用dns-prefetch標籤實現域名的預解析。瀏覽器在後臺把要使用DNS解析的請求提早解析
例如阿里cdn的預解析
二、首字節
HTTP是應用層協議,TCP是傳輸層協議。所以HTTP是基於TCP連接基礎上進行傳輸的,需要先建立TCP連接。
1、白屏時間
瀏覽器顯示HTML的順序是自上而下的,它的渲染順序也是自上而下的。
用戶輸入網址到看到第一個視覺標誌爲止,稱爲白屏時間。
白屏時間越長,用戶體驗越差。
縮短白屏時間方法:
- 減少文件的加載體積:例如gzip算法來壓縮js,css,html文件及各種圖片資源的加載體積
- 加快JavaScript的執行速度,或者根據自身業務場景使用懶加載等策略
2、瀏覽器響應時間
瀏覽器響應時間:瀏覽器發起API接口請求,到響應數據完成渲染的時間。
涵蓋了:網絡往返時延+服務器響應時間+響應數據完成渲染時間
主要是服務器響應時間佔了很大的一部分。
3、HTML下載和渲染
當服務器返回HTTP Response後,瀏覽器會陸續開始接受響應的數據,進行HTML的下載,渲染和顯示。
頁面展示還有2個重要指標:解析Dom樹時間和OnlOnLoad時間。
方法:
- 加快HTML的下載和解析的速度
- 優化JavaScript和css文件和結構
首屏時間:用戶輸入URL按回車,到看到第一個頁面的時間
響應時間的:2 5 10 原則
三、服務器響應
普通的路線如:用戶請求–>nginx–>tomcat
基礎設施指標
1、CPU利用率
- 用戶態(user)
- 系統態(sys)
- 等待態(wait)
- 空閒態(idle)
CPU超過80%可能就有問題了
2、內存利用率
內存達到100%可能也不是瓶頸,因爲內存中存放了緩存。
- 主要衡量swap交換空間的利用率。
- jvm是否有頻繁的FGC,如有則需要優化
3、數據庫
- sql查詢時間
- key buffer命中率
- query cache命中率
- table cache命中率
四、整體性能指標
-
吞吐量:
單位時間內系統處理的數據量的總和
吞吐量反應了服務器的處理能力和承受壓力 -
響應時間:
API接口一次操作完成的時間:請求發送的時間+訪問等待的時間+服務處理的時間
TPS(Transactions Per Second):服務器每秒處理的事物數。衡量吞吐量的一個重要參數
QPS(Queries Per Second):一臺服務器每秒能夠對應的查詢次數,它是對一個特定的查詢服務器,在規定時間內處理多少流量的衡量標準
五、服務端性能優化
-
架構層面
配置升級,集羣優化,讀寫分離,分庫分表,服務拆分 -
網絡層面
網絡專線,BGP選路,CDN優化 -
後端層面
動靜分離,異步優化,並行優化,緩存優化,減少次數,壓縮優化,鎖優化,配置優化