互联网大厂必学技能:压力测试!
生活随笔
收集整理的這篇文章主要介紹了
互联网大厂必学技能:压力测试!
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文收錄在豬哥GitHub:https://github.com/pig6/Java 中,本項目收集一線大廠面試、實戰(zhàn)、Java學習路線等。
壓測全稱為壓力測試,是確立系統(tǒng)穩(wěn)定性的一種測試方法,通常在系統(tǒng)正常運作范圍之外進行,以考察其功能極限和隱患。
在開發(fā)接口或者功能點完成后,就需要對接口或功能點壓力測試,測試出接口的極限以應對較大并發(fā),舉一個最直接的例子:淘寶雙十一購物節(jié),2018年淘寶交易創(chuàng)建峰值達到49.1萬筆/秒,而在雙十一之前淘寶都要對系統(tǒng)進行壓測,看是否能夠抗住每年創(chuàng)新高的并發(fā)!
大白話:不停地請求服務的接口,設置每秒的請求量以及持續(xù)時間,看看什么時候服務開始處理失敗,從而得出服務的性能指標。
一、筆記目的
- 簡單認識壓測(的目的)
- 介紹壓測平臺應該有哪些能力
二、壓測目的
- 挖掘系統(tǒng)瓶頸點
- cpu計算能力
- 業(yè)務代碼(頻繁full gc等)
- DB
- 線程模型
- 帶寬等
- 建立性能基線
- qps (request per second)
- rt (response time)
- 用于線上擴容策略配置等
- 優(yōu)化系統(tǒng)性能
- 配置DB主從
- jvm參數(shù)優(yōu)化
- 緩存改造
- 線程模型改造等
三、壓測平臺應該具備的能力
1.壓測場景
- rpc場景(一般為壓測單個服務的性能)
- 回放錄制的流量
- 自定義的流量
- http場景(一般為全鏈路壓測)
- 回放錄制的流量
- 自定義的流量
2.數(shù)據(jù)
準備數(shù)據(jù)用于壓測的時候使用
- 錄制任務
- http請求的錄制
- rpc請求的錄制
3.壓測參數(shù)配置
- 壓測類型
- 普通壓測(普通循環(huán)播放流量)
- 調試(單次流量播放,一般用于調試鏈路是否接通)
- 遞增(設置壓測的多個階段,每個階段配置不同的qps以及持續(xù)時長)
- 配置
- 變量配置(單是流量錄制是不夠的,特殊的接口(比如關注行為)需要變化請求的參數(shù),因此需要支持變量配置)
- 自增變量
- 設置起止值
- 設置步長
- 文件變量
- 讀取變量列
- 時間變量
- 對當前毫秒戳做加減操作
- 計算變量
- uuid
- 區(qū)間random
- 預定義變量(就是寫死一個值)
- 自增變量
- 請求配置
- 指定接口與方法/url
- 指定機器
- 超時時間
- 變量
- 指定配置好的變量
- 壓測配置
- 初始qps
- 期望最大qps
- 詞表配置
- 循環(huán)回放流量錄制中的流量
- 資源隔離
- DB隔離
- 緩存隔離
- MQ隔離
- 靜默期(那個時間段不可以進行壓測)
- 變量配置(單是流量錄制是不夠的,特殊的接口(比如關注行為)需要變化請求的參數(shù),因此需要支持變量配置)
4.保護策略
配置不同的監(jiān)控項以及異常的處理策略:比如停止壓測或者降低壓測流量等
- db保護策略
- 配置db的告警閾值
- 告警之后自動降低指定的qps或者停止壓測
- 配置db的告警閾值
- 機器保護策略
- 監(jiān)控cpu gc 內存等等等等
- 降低qps或者停止
- 服務保護策略
- 監(jiān)測請求的響應情況
- 降低qps或者停止
5.監(jiān)控
配置不同的監(jiān)控項用于判斷性能瓶頸
- 客戶端響應情況監(jiān)控
- qps
- rt
- 錯誤率
- 服務端監(jiān)控####
- 業(yè)務日志
- 機器
- cpu
- 線程池
- 服務接口等待隊列大小等
四、壓測報告
- 需要輸出壓測報告用于分析和記錄
- 各個監(jiān)控項的指標
- 壓測結果的指標
- 等等
今天為大家簡單列舉了一些壓測的知識點,以后有時間再為大家詳細介紹哦,歡迎一鍵三連!!!
總結
以上是生活随笔為你收集整理的互联网大厂必学技能:压力测试!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【重点】Java大厂面试10个知识点汇总
- 下一篇: Java异常简单介绍