1. 程式人生 > >效能測試基礎架構

效能測試基礎架構

效能測試是一項綜合性的工作,實質是利用工具去模擬大量使用者操作來驗證系統能夠承受的負載情況,找出潛在的效能問題,分析並解決;為後續的擴充套件提供參考。一般來說效能測試介入的時機是在功能測試完成之後。

效能測試的首要目標確認需求,由產品、架構師、開發、測試一起討論決定,可以從新系統和舊系統兩種系統來考慮:

  • 新系統

產品、架構師在前期需求調研時,預估出可能造成大併發的點(大量使用者同時請求,大量計算型任務、頻繁操作資料庫等場景);

  • 舊系統

(1)根據生產環境日誌(ELK),統計高頻訪問介面TPS,以此確定對應的業務場景和效能指標;
(2)線上曾經出現過效能問題的點,可作為參考;
(3)大型活動,例如搶紅包、秒殺、直播等活動;
(4)經驗,功能邏輯服務,響應時間較長的點。

基礎架構

大型網站架構技術的核心不是從無到有搭建一個大型系統,而是能夠伴隨小型系統業務的逐步發展,慢慢地演化成一個大型系統。考慮系統的效能,除了要考慮單臺伺服器的效能,可擴充套件性也是一個重要考慮因素。例如下圖一個分散式系統架構:

這裡寫圖片描述

CDN伺服器:放在網路服務商機房,使使用者通過最短訪問路徑獲取資料,一般存放靜態資原始檔。(第一次預演有業務方未放靜態資原始檔到CDN伺服器)
反向代理伺服器:傳統代理伺服器位於瀏覽器側,代理瀏覽器將HTTP請求傳送到網際網路上;而方向代理伺服器位於網站伺服器機房一側,代理網站伺服器接受HTTP請求。兩個優點:(1)安全,隱藏伺服器地址,免受攻擊;(2)快取,快取熱點資料,加快響應速度,減輕伺服器負載壓力。

應用伺服器:分散式叢集,可擴充套件性,共同對外提供服務,提高整體處理能力,改善效能。
資料庫、快取伺服器:分散式主從架構;對於非結構化的資料,儲存在NoSQL資料庫來提升效能;重要資料仍需要關係型資料庫(如MySQL),分庫分表提高效能。
遵循原則:
(1) 利用CDN加速系統響應
(2) 獨立部署,避免不同系統間的資源競爭(比如CPU、記憶體、磁碟等)
(3) 資料庫實施讀/寫分離,查詢操作儘可能命中快取
(4) 業務垂直化,降低耦合,從而實現分而治之的管理
(5) 大流量限流/消峰
(6) 非同步呼叫—MQ實現系統間的解耦