1. 程式人生 > >壓力測試術語之熔斷、降級、限流

壓力測試術語之熔斷、降級、限流

虛擬 second 自動 cap 所有 調整 jpg 交易 page

1、熔斷、降級、限流

概念 目的 觸發方 觸發場景 解決方 處理方案 所有用戶表現一致 用戶表現
熔斷 從可用性可靠性著想,為防止系統的整體緩慢甚至崩潰 某個服務(下遊服務)不可用 當失敗的調用到一定閾值,如缺省是5秒內20次調用失敗,就會啟動熔斷機制,自動觸發 調用方 開啟熔斷之後,如何實現自動恢復?每隔一段時間,釋放一個請求到服務端進行探測,如果後端服務已經恢復,則自動恢復 不一致 用戶體驗到的是某些功能暫時不可達或不可用
降級 為防止系統的整體緩慢甚至崩潰 服務出問題或者影響到核心流程的性能則需要暫時屏蔽掉 整體負荷比較大,進行人工幹預 調用方 取消降級 一致 用戶體驗到的是某些功能暫時不可達或不可用
限流 通過對並發訪問/請求進行限速或者一個時間窗口內的的請求進行限速來保護系統 通過對進行限速來保護系統 超出了服務每分鐘的調用量或服務的某個方法調用量 如果是由於當時壓測並發數較高引起;視具體情況而定 調大閾值 一致 一旦達到限制速率則可以拒絕服務或
具體示例 熔斷: A -> B -> C,如果C出現問題了,那麽B熔斷了,則A就不用熔斷了。 降級: A -> B -> C,C服務存在C1、C2、C3、C4 1,如果C4優先級較低,一定是先降級優先級地的接口C4 2,如果服務鏈路整體沒有性能特別差的點,比如就是外部流量突然激增,那麽就從外到內開始降級。 3,如果某個服務能檢測到自身負載上升,那麽可以從這個服務自身做降級。 限流: B只允許A以QPS<=5的流量請求,而C卻只允許B以QPS<=3的qps請求,那麽B給A的設定就有點大,上遊的設置依賴下遊。而且限流對QPS的配置,可能會隨著服務加減機器而變化,最好是能在集群層面配置,自動根據集群大小調整。 2、QPS 與並發數 與響應時間 每秒查詢率QPS是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準。 QPS ( Query Per Second ):每秒鐘request/事務 數量 並發數: 系統同時處理的request/事務數 並發主要是針對服務器而言,是否並發的關鍵是看用戶操作是否對服務器產生了影響。因此,並發用戶數量的正確理解為:在同一時刻與服務器進行了交互的在線用戶數量。這些用戶的最大特征是和服務器產生了交互,這種交互既可以是單向的傳輸數據,也可以是雙向的傳送數據。 響應時間: 一般取平均響應時間 QPS(TPS)= 並發數/平均響應時間 或者 並發數 = QPS*平均響應時間 技術分享圖片
上圖橫坐標是並發用戶數。綠線是CPU使用率;紫線是吞吐量,即QPS;藍線是時延。 開始,系統只有一個用戶,CPU工作肯定是不飽合的。一方面該服務器可能有多個cpu,但是只處理單個進程,另一方面,在處理一個進程中,有些階段可能是IO階段,這個時候會造成CPU等待,但是有沒有其他請 求進程可以被處理)。隨著並發用戶數的增加,CPU利用率上升,QPS相應也增加(公式為QPS=並發用戶數/平均響應時間。)隨著並發用戶數的增加,平均響應時間也在增加,而且平均響應時間的增加是一個指數增加曲線。而當並發數增加到很大時,每秒鐘都會有很多請求需要處理,會造成進程(線程)頻繁切換,反正真正用於處理請求的時間變少,每秒能夠處 理的請求數反而變少,同時用戶的請求等待時間也會變大,甚至超過用戶的心理底線。 3、TPS:Transactions Per Second (每秒傳輸的事務處理個數),即服務器每秒處理的事務數。TPS包括一條消息入和一條消息出,加上一次用戶數據庫訪問。(業務TPS = CAPS × 每個呼叫平均TPS) TPS是軟件測試結果的測量單位。一個事務是指一個客戶機向服務器發送請求然後服務器做出反應的過程。客戶機在發送請求時開始計時,收到服務器響應後結束計時,以此來計算使用的時間和完成的事務個數。 一般的,評價系統性能均以每秒鐘完成的技術交易的數量來衡量。系統整體處理能力取決於處理能力最低模塊的TPS值。 4、PV UV 區別 PV(訪問量):即Page View, 具體是指網站的是頁面瀏覽量或者點擊量,頁面被刷新一次就計算一次。如果網站被刷新了1000次,那麽流量統計工具顯示的PV就是1000 。 UV(獨立訪客):即Unique Visitor,訪問您網站的一臺電腦客戶端為一個訪客。00:00-24:00內相同的客戶端只被計算一次。 一個UV可以用很多PV,一個PV也只能對應一個IP。比如,今天訪問了一次你的網站,你的UV就加了1,我這次訪問瀏覽了兩個頁面,你的PV就加2,我訪問同一個頁面,但刷新了一次,PV也是2. 5、cpu、內存、磁盤IO之間的關系 CPU:工人,幹活的,判斷以及邏輯處理 內存:車間,工人幹活的地方,車間中加工原料,當車間中沒有原料了,在從倉庫中取原料,對原料進行加工 內存本身有一定的存儲空間,對內存中的數據進行處理的速度比從硬盤取數據再處理的速度快很多 硬盤:倉庫,原料,數據存儲 CPU對數據進行判斷以及邏輯處理,本身不能存儲數據,這時cpu從內存取數據進行邏輯計算,如果內存沒有數據,才會從硬盤讀數據到內存,再對數據進行處理 就像人吃飯一樣,cpu就是人,內存就是碗,硬盤就是飯鍋!! 當cpu進程等待,會造成內存開銷的增加,內存不夠用的時候會用到虛擬內存,導致虛擬內存的增加,這時磁盤IO開銷就會增加,系統態sy%提升,cpu開銷增加,內存裏數據不夠用,才用磁盤中取數據.

壓力測試術語之熔斷、降級、限流