Weitere ähnliche Inhalte Ähnlich wie 為瞬間巨量做好準備 20180726 (20) 為瞬間巨量做好準備 2018072611. Capacity Test
Capacity Plan
Stress Test
Scalability Test
Stability Test
等等...
This is 今天的主題
延伸閱讀:
● Complete Think - 淺談效能測試
● 3 Types of Load Testing Every Company Should Run
● Benchmark(Wikipedia)
Benchmark
RPS (Request Per Second)
QPS (Query Per Second)
同時上線人數
單位時間流量
針對特定的應用情境
相同的行為
比較不同的配置
針對特定的應用情境
定義出一套相同的行為來對系統進行每一次的量測
量測結果可以用來比較不同配置、等級、架構之間的
能力,
這個過程就叫做 Benchmark ← 動詞
15. 假設我們現在有這樣一個待測對象(以 AWS 為例)
Web App DB
活動訂票系統資訊頁面
活動訂票
Benchmark
Benchmark
RPS
RPM
營運成本
15
必須要可以用數字來 說明
1. 他的極限在哪裏?
2. 說不定使用這個架構成本很低?
3. 說不定其實已經夠用了?
4. 怎麼和其他架構比較?
針對不同的應用情境需要定義不同的
Benchmark 方法
36. 常犯的錯誤
手動建立起環境後就開始測試
先著手在如何快速建立可以執行測試環境
AMI + Launchconfig + Cloudformation
在開發的版本上進行測試
理想是大版號都要進 Capacity Test
36
1. 通常需要測試大流量的對象,需要的使用
的實體配置會比較好,就會比較花錢,無
法一直放在那邊給你測試。
2. 就好是可以需要測試時,建立起來,不需
要時,整個砍掉。
3. 使用 AMI 快速 snapshot prodution 的機
器,配合 Cloudformation 將整個 Service
Stack 建起來。Launchconfig 可以用來修
改配置。
41. 測試結果數據
● Response Time (Latency) Overtime
● Successful Rate % (Error Rate)
● Network Throughput (Client side)
● RPS
http://jmeter.apache.org/usermanual/generating-dashboard.html
41
雖然說 AWS 的 ELB 也有提供 Request Count 和 Avg latency 的數據。
但是我們要的 Capacity 測試結果必需由 Client 端收集,原因如下:
1. Client 端得到的結果才是真正使用者看到的
2. AWS ELB 的數據少了 Client 到 ELB 這段的網路延遲數據,
3. 如果 Client 發生 504 Gateway Timeout,AWS ELB 得不到這個數據。
43. Response Time overtime (Percentiles)
43
有少部分的請求會 latency 拉到非常高,可能因為網路連線的關係
這些樣本會影響整體的平均 值(實際的使用者感受其實可能會比平均直來得
快)
導致從平均值看不出多數 request 的回應時間
所以我們可能需要從 90位,95位,99位來看,去長尾的意思
45. Network Throughput (Client Side)
45
Client 端的 Network Throughput,非常重要,
如果增加了 Request 數量 Throughput 沒有增加,
代表可能是 Client 的頻寬不夠來不及把增加的 request 傳送出去
53. AWS 的 ELB 目前有三種
Classic Load
Balancer
Application
Load Balancer
Network Load
Balancer
HTTP, HTTPS
TCP
HTTP, HTTPS TCP
53