"Load-Test"
- JMeter 在本機跑負載測試的實測紀錄:Docker image、test plan 的元件、CSV Data Set、CLI mode 與 JTL、dashboard 與 statistics.json、JMeter 之外的門檻判定、remote testing 的 client 與 server
要在本機用 Docker 照一次實測跑 JMeter:建 image、寫 test plan、從 CSV 餵測試資料、用 CLI mode 跑出 JTL 與 dashboard、讀 statistics.json 判定門檻、開 client 與多台 server 做 remote testing 時讀;也用在 sample 失敗了 exit code 還是 0、CSV 裡某些值從來沒被請求到、-J 傳的屬性在 server 上沒有作用、-o 回報資料夾不是空的時候
- JMeter 在容量探測的用法:thread group 固定的負載變數、逐級加壓、knee 的判讀、施壓端與分散施壓的檢查、多 protocol 的涵蓋範圍與排查順序
用 JMeter 找飽和點時的判斷:thread group 與 timer 量的是哪一種負載模型、Open Model Thread Group 的逐級加壓、從 dashboard 判讀 knee、施壓端與 TLS 連線的失真、分散施壓,以及容量結論要附的條件
- JMeter 在效能 regression gate 的用法:JMeter 之外的門檻判定、逐筆 assertion 與統計門檻的分工、thread group 的負載模型、施壓端設定與基準的可比性、PR 與 nightly 的分工、證據保存與 gate 失敗的排查順序
用 JMeter 實作效能 regression gate 時的判斷:門檻判定放在 JMeter 之外的哪一段、逐筆 assertion 與分佈門檻的分工、負載模型與施壓端設定怎麼影響前後兩版的比較、要保存的執行條件,以及 gate 失敗時怎麼把誤判和真正的退化分開
- Locust 在本機跑負載測試的實測紀錄:受測服務、locustfile、headless 執行與 CSV、內建的 exit code、quitting 事件裡的門檻判定、--reset-stats 與 on_start、master 與 worker 的分散執行
要在本機用 Docker 照一次實測跑 Locust:寫 locustfile、headless 執行、讀終端機的統計表與 CSV、在 quitting 事件裡判定延遲門檻、開 master 與多個 worker 分散執行時讀;也用在受測服務變慢而 exit code 還是 0、加了 --reset-stats 之後登入請求還在統計裡、master 回報 worker failed to send heartbeat 的時候
- Locust 在容量探測的用法:closed model 下的逐級加壓、吞吐量與延遲的換算、pacing 的上限、worker 的檢查與排查順序
Locust 只有 closed model 時找飽和點的判斷:逐級增加使用者、從每秒 task 數與延遲換算受測服務的狀態、到達率型服務的延遲低估與 pacing 的上限、worker 與 client 的排除條件,以及容量結論的寫法
- Locust 在效能 regression gate 的用法:exit code 與門檻判定、預熱與 on_start 的請求、closed model 下的比較、custom client 回報的請求範圍、PR 與 nightly 的分工、證據保存與 gate 失敗的排查順序
用 Locust 實作效能 regression gate 時的判斷:內建 exit code 之外的門檻怎麼在 quitting 事件裡判定、登入與預熱的請求怎麼混進統計、closed model 讓退化落在延遲還是吞吐量,以及 gate 失敗時怎麼把誤判和真正的退化分開
- Gatling 在容量探測的用法:open model 的逐級加壓、knee point 的判讀、施壓端的檢查、feeder 資料的分佈與排查順序
用 Gatling 找受測服務飽和點時的判斷:逐級加壓的兩種注入寫法與各自適用的階段、report 的四張圖怎麼換算成受測服務的狀態、施壓端要先排除的資源與 OSS、Enterprise 的分散施壓、feeder 資料怎麼讓容量估高、讀寫高峰錯開時的 scenario 寫法,以及容量結論要附的執行條件
- Gatling 在效能 regression gate 的用法:assertion 的門檻、ramp-up 與量測區間、注入模型、PR 與 nightly 的分工、證據保存與 gate 失敗的排查順序
用 Gatling 實作效能 regression gate 時的判斷:assertion 對應哪一種判讀方法、OSS 怎麼做出相對門檻與跨次比較、預熱的請求怎麼處理、注入模型怎麼影響前後兩版的比較、Gatling 在 CI 的哪幾條路徑跑、要保存哪些執行條件,以及 gate 失敗時怎麼把誤判和真正的退化分開
- k6:Threshold CI Gate 與 Scenario 設計
用 threshold 把 load test 結果變成 CI pass/fail,用 scenario 讓 workload model 貼近 production traffic shape。
- Open and Closed Workload Model(開放與封閉負載模型)
設計壓測的注入方式、要在固定到達率與固定同時在線人數之間選一種,或壓測量到的延遲低於 production、懷疑負載工具少送了請求時讀
- Load Generator Saturation(施壓端飽和)
壓測的吞吐量停在某個值、延遲上升,要確認瓶頸在受測服務還是在執行負載工具的那幾台機器時讀
- TLS Handshake(TLS 握手)的成本與連線重用
壓測量到的上限落在負載平衡器或反向代理的 CPU、Connect Time 隨負載上升,或要判斷負載工具該不該在每一輪重建連線時讀
- Gevent Monkey Patching(gevent 的猴子補丁)
Locust 的吞吐量從加壓一開始就不隨使用者數增加而 worker 的 CPU 很低、一個 worker 程序的 CPU 到頂,或要判斷某個 Python 函式庫是否會卡住 Locust 的 worker 時讀