服務端效能測試你應該知道的

zailushang發表於2020-09-01

最近公司正好有一個效能測試的活兒,接觸後發現好多同學還是對效能一知半解,沒有系統的概念。所以開始翻閱以前收藏的資料,找到很不錯的實踐資料,分享給大家。

先來個目錄,不知道有沒有小夥伴感興趣。

全文參考京東金融和支付寶效能測試指南,11年左右的資料,但是現在仍然不過時。服務端效能測試技術也沒有特別大的突破,所以還是100%可參考的教程。

效能測試指南主要分為4個部分:方法與實踐篇,效能分析與調優篇,效能測試模板,效能測試工具篇。其中方法與實踐主要講述效能測試的過程,包含效能測試過程,效能評估模型,需求分析方法,常用效能測試指標等。效能分析與調優講解了常用的分析定位方法以及效能調優的一些方法與層次。效能測試模板則提供了一個效能測試報告範例與效能測試模板。工具篇講述了常用的工具集及使用方法。

每次進行效能測試以及發現效能瓶頸的過程都是一次經驗的累積與學習的過程,在解決問題的時候我們會學到很多的技能和方法,希望效能測試指南能為大家提供一個方向的指引。

1 序言 5
1.1 編者寄語 5
1.2 編者簡介 5
2 效能測試方法與實踐 5
2.1 效能測試目的 5
2.2 效能測試型別 6
2.3 效能測試基本過程 7
2.4 效能評估模型 9
2.4.1 效能評估模型概述 9
2.4.2 閉環流程圖 13
2.4.3 TPS計算公式 14
2.4.4 影響因子 14
2.4.5 響應時間 15
2.4.6 穩定性要求 15
2.4.7 效能測試環境要求 16
2.4.8 併發量與吞吐量(TPS)的關係 16
2.4.9 線上效能資料採集 16
2.5 效能測試需求分析 16
2.5.1 業務調研 17
2.5.2 效能需求評估 18
2.5.3 效能測試指標 19
2.5.3.1 效能指標分析 19
2.5.3.2 效能指標詳解 20
2.5.3.3 效能指標參考 22
2.5.4 壓力與容量預估 23
2.6 效能測試準備 23
2.6.1 效能測試環境申請 23
2.6.2 環境清理 24
2.6.3 環境搭建及資料準備 24
2.6.4 壓力工具選擇 24
2.6.5 資源監控工具部署 26
2.7 效能測試執行 26
2.7.1 無人值守執行效能測試 26
2.7.2 動態調優 27
2.7.3 邊執行邊思考 27
2.8 效能分析與調優 28
2.9 效能測試報告與總結 28
2.10 效能准入標準與建議 28
3 效能分析與調優 30
3.1 效能分析 30
3.1.1 效能分析的目的 30
3.1.2 常見效能瓶頸徵兆 30
3.1.3 效能資料解讀建議 31
3.1.4 如何定位效能問題 32
3.1.5 常見效能問題參考 34
3.2 效能調優 35
3.2.1 效能調優目標與策略 35
3.2.2 調優的原則 36
3.2.3 調優的基本步驟 36
3.2.4 效能調優的層次 36
3.2.4.1 設計調優 36
3.2.4.2 演算法調優 37
3.2.4.3 程式碼調優 38
3.2.4.4 JVM調優 38
3.2.4.5 網路調優 38
3.2.4.6 系統調優 41
3.2.4.7 資料庫調優 43
3.2.5 配置項效能調優參考 46
4 效能測試模板 51
4.1 COD系統效能測試報告範例 51
4.2 效能測試報告模板 65
5 效能測試工具 65
5.1 JMeter參考手冊 65
5.1.1 JMeter介紹 65
5.1.2 JMeter安裝 66
5.1.3 JMeter執行 67
5.1.3.1 命令列模式執行 67
5.1.3.2 叢集模式執行 67
5.1.3.3 命令列選項 67
5.1.4 JMeter常用協議 68
5.1.4.1 HTTP請求 68
5.1.4.2 https請求 69
5.1.4.3 Java請求 70
5.1.5 JMeter常用場景 72
5.1.5.1 穩定TPS測試 72
5.1.5.2 併發壓力測試——設定集合點 72
5.1.5.3 混合壓力場景測試 72
5.1.5.4 引數化 73
5.1.6 JMete主要元件介紹 75
5.1.6.1 執行緒組 75
5.1.6.2 控制器 76
5.1.6.3 取樣器 76
5.1.6.4 邏輯控制器 77
5.1.6.5 監聽器 78
5.1.6.6 定時器 78
5.1.6.7 斷言 79
5.1.6.8 配置元件 79
5.1.6.9 前置處理器 79
5.1.6.10 後置處理器 80
5.1.6.11 執行順序 80
5.1.7 JMeter函式 80
5.1.7.1 函式列表 80
5.1.8 JMeter擴充套件 81
5.1.8.1 JMeter監控統計外掛 81
5.1.9 JMeter持續整合 84
5.1.9.1 JMeter+Ant 84
5.1.9.2 JMeter+Maven 85
5.1.9.3 JMeter+Jenkins 86
5.1.10 JMeter+Selenium 87
5.1.10.1 使用JMeter JUnit Sampler 87
5.1.10.2 使用BeanShell Sampler 90
5.1.10.3 使用JMeter Plugins的WebDriver Sampler 91
5.2 Loadrunner 91
5.2.1 loadrunner簡介 91
5.2.2 錄製及除錯指令碼 92
5.2.2.1 錄製指令碼前的設定: 92
5.2.2.2 Run-time Setting設定 94
5.2.2.3 其它設定 98
5.2.2.4 引數化 98
5.2.2.5 檢查點 101
5.2.2.6 集合點 101
5.2.2.7 事務 102
5.2.2.8 關聯 102
5.2.2.9 思考時間 105
5.2.2.10 JavaVuser協議例子 105
5.2.3 場景設定 106
5.2.3.1 如何設定併發使用者數 106
5.2.3.2 設定壓力機 107
5.2.3.3 監控系統資源情況 107
5.2.3.4 集合點策略 109
5.2.4 結果分析 109
5.2.4.1 Analysis Summary 109
5.2.4.2 Running Vuser 110
5.2.4.3 Transaction Response Time(Percentile) 110
5.2.4.4 合併圖 111
5.2.5 常見函式 111
5.3 JVM監控工具 112
5.3.1 Java自帶的效能監控工具 112
5.3.1.1 具體案例: 115
5.3.2 Eclipse Mat Usage 116
5.3.2.1 生成 Java heap Dump 檔案 116
5.3.2.2 MAT安裝 116
5.3.3 JProfiler 119
5.3.3.1 JProfiler在linux上的配置使用 119
5.4 OS與網路監控與分析工具 126
5.4.1 工具總覽 126
5.4.2 top 126
5.4.3 vmstat 127
5.4.3.1 常用命令:vmstat 1 128
5.4.4 iostat 128
5.4.4.1 常用命令:iostat -x 129
5.4.5 netstat 129
5.4.5.1 常用命令:netstat -anltp 130
5.4.6 dstat 130
5.4.6.1 常用命令:dstat -cmsdnlpyt 130
5.4.7 Nmon 130
5.4.8 檔案控制程式碼數檢視及修改 133
5.5 資料庫分析與診斷工具 134
5.5.1 Oracle AWR 134
5.5.2 MySQL AWR 144
5.5.2.1 What is myawr 144
5.5.2.2 Myawr Data Model 146
5.5.2.3 Quickstart 147
5.5.2.4 Dependencies 149
5.5.2.5 Mysql WorkLoad Report 150
5.5.2.6 Mysql Snapshot Report 152
5.5.2.7 MySQL AWR 部署和報告生成 153

相關文章