---
tags: Other
---
# SLI, SLO, SLA
## Service Level Indicator
**服務水準指標**,用於確定服務是否在可接受範圍內的指標。例如,頁面加載時間的 SLI 可能是「第 95 百分位的載入網頁及所有底層 API 調用」。
SLI 是經過仔細定義的測量指標,它根據不同系統特點確定要測量什麼。
常見的測量指標有以下幾個方面:
### 效能
- 響應時間 latency
- 吞吐量 throughput
- 請求量 qps
- 實效性 freshness(?
### 可用性
- 執行時間 uptime
- 故障時間 / 頻率
- 可靠性
### 質量
- 準確性 accuracy
- 正確性 correctness
- 完整性 completeness
- 覆蓋率 coverage
- 相關性 relevance(?
### 內部指標
- 佇列長度 queue length
- 記憶體佔用 RAM usage
### 因素人
- 響應時間 time to response
- 修復時間 time to fix
- 修復率 fraction fixed
## Service Level Objectives
**服務等級目標**,使用 SLI 和標的目標定義。其中一種 SLO 範例是「之前的 SLI 延遲時間必須低於 400 毫秒」。
SLO 指定了服務所提供功能的一種期望狀態。用 SLI 來描述,監控測量 SLIs,對比檢測到的 SLIs 值是否達到目標。
沒有達標不會怎麼樣。
- Don't pick a target based on current performance.
- Keep it simple.
- Avoid absolutes.
- Have as few SLOs as possible.
- Perfection can wait.
## Service Level Agreement
**服務水準協議**,是無法達成 SLO 時所需遵循的步驟和補救措施。其中一種 SLA 範例是「暫停任何新開發,直到達成 SLO 為止」。
是一個涉及雙方的合約,雙方必須都要同意並遵守這個合約。若未達標會有懲罰(錢)。
SLA = SLO + 後果
## 負載和效能測試
- **負載和效能測試達到峰值流量的 100% 或更高**。
- **測試從正常流量到峰值流量的速度**。測試從正常流量快速擴充到峰值的能力。系統的某些部分可能需要一些時間回應,以載入信號。
- **在負載下測試客戶流程**。對系統進行全面測試,以確保客戶體驗在峰值期間仍然有效。
- **考慮減載,以避免連鎖性故障**。實作減載,犧牲比較不重要的體驗,以防止最重要的客戶流程失敗。
- **測試不同的負載組合**。
## 參考資料
- [黑色星期五生產準備就緒 / Google Cloud](https://cloud.google.com/solutions/black-friday-production-readiness?hl=zh-tw)