GH GambleHub

功率規劃和負載增長

簡短摘要

功率是承受目標SLO的能力,而預期負載增加和故障。基礎是:

1.需求預測(基本趨勢+季節性+活動)。

2.負載模型(Internet的開放模型)。

3.安全余額(頭部)和錯誤的預算。

4.縮放(地平線/垂直/自動)+限制器(rate-limit/backpressure)。

5.財務:$/1000 RPS, $/ms p95, TCO按場景。

術語和指標

Throughput:RPS/QPS/CPS-實際吞吐量。
Latency p95/p99:針對用戶路徑的目標的SLO。
Aturation: CPU/內存/IO/FD/連接/隊列引導。
錯誤率:5xx/timeout/429,該期間預算錯誤。
Headroom:高峰時可用功率的比例(建議≥ 30%)。
Burst:短期飆升(秒/分鐘),Spike:N ×急劇上升。

基本模型和公式

Little's Law(適用於排隊系統)


L = λ W

L是系統中的平均請求數,λ是平均輸入強度(RPS),W是系統上的平均時間。用於評估隊列深度。

下載因子(ρ)


ρ = λ / μ

μ-服務速度(RPS在100% CPU)。ρ→1,潛伏期非線性增長-保持工作點ρ ≤ 0。6–0.75.

安全因素/庫存


Capacity_required = Peak_load (1 + Headroom) Degradation_factor

其中Degradation_factor考慮到N故障,緩存退化,單個RoR/區域丟失(例如1。2).

需求預測

1.歷史:白天/周概況,季節性,與事件的相關性(比賽/流/付款)。

2.Events: 腳本系數(通常一天× 1,比賽× 2。3、結局× 3。5).

3.波動來源:營銷活動,發行版,機器人異常。
4.預測單位:路線(登錄,lobby,catalog,payments),CPS TLS,QPS DB,磁盤的IOPS,egress Gbit/s。
5.信任:保持兩個場景-保守和激進。

負載模擬

開放模型(類似Poisson的到來):對於公共API/weba來說,這是合理的。
閉合模型(VU+思考時間):適用於內部序列;結合起來。
路線混合:每個尾部的重量份額;不僅包括「熱」,還包括「昂貴」(註冊,存款)。
不要忘記:轉發、隊列、合作夥伴限制(PSP、第三方API)。

安全儲備設計

Headroom目標:≥高峰30%(用於互聯網);對於支付核心和關鍵路徑-40-50%。
N+1/N+2:在不違反SLO的情況下維持1-2個實例/區域的拒絕。
多區域:每個區域≥占總峰值的60%(以度過鄰居的損失)。
Degrade模式:禁用次要功能,減少付費,包括緩存/回應。

逐層排序

網絡/邊緣

前部的CPS/RPS,TLS-handshake p95,resumption≥70%,egress Gbit/s。
Anycast/Geo-routing,CDN/WAF限制(事先同意)。
庫存:link/applink ≥ peak × 1。3、SYN backlog與H3 UDP/443庫存。

平衡器/代理

實例上的RPS,開放連接,隊列,CPU/IRQ。
Keepalive和connection pooling-減少與後端的連接。

庫存: ρ ≤ 0。7, limiter по CPS/RPS per route.

應用程序

高原中每個內核的目標性能(RPS/core)。
池(thread/DB/HTTP)-不設限制。
庫存:到CPU 60-70%和latency-trigger(p95)的自動軌距。

緩存

Hit-ratio,hotset體積,eviction,復制品。
庫存:內存≥ 1。2 ×熱門,網絡頭部≥ 30%。

數據庫

QPS/TPM, p95請求,鎖定,緩沖區,WAL/replag。
IOPS和後坐力驅動器是p95的關鍵。
庫存:CPU工作點50-65%,復制版脫落<目標;sharding和read-replicas計劃。

驅動器/存儲

IOPS (4k/64k), throughput, fsync cost.

庫存:IOPS ≥高峰× 1.5,目標窗口中的latency p95;日誌/數據下的各個池。

GPU/ML(如果有在線地獄)

Samples/s, latency, VRAM headroom, batching.

庫存:負載「鋸」下的擊球參數,warm-pool GPU。

自動縮放

HPA/KEDA:CPU+定制指標(p95 latency,RPS,隊列)。
Warm pools:在活動之前預熱實例。
步長:帶有cooldown的臺階,以免被「鋸」。
反應時間:接吻T_scale ≤ 1-2分鐘前層;對於DB-提前。

限制器和後壓

Rate-limit по IP/ASN/device/route;合作夥伴配額。
與TTL排隊,拒絕比taymauts早「禮貌」(429/via gray-wol)。
相似性:支付鑰匙;帶有budget+jitter的復制品。
請求合集/SWR:在激增期間不要喚醒起源。

快速計算示例

給出:API的35k RPS峰值預測,p95 250毫秒,實例的平均服務時間8毫秒,CPU的60% RPS/core,實例的8個內核 1000 RPS/實例。
步驟1(無余地):35例。

步驟2 (headroom 30%): 35 × 1。3 = 46.

步驟3(一個AZ失敗,+20%): 46 × 1。2 ≈ 55.

步驟4(四舍五入+熱備用10%):61例。
檢查:ρ ≈ 35k/( 61 k)≈ 0。57-在綠區。

金融模型(FinOps)

每層$/1000 RPS (edge、proxy、app、DB)。
$/ms p95(減少尾巴的成本)。
腳本TCO:按需與reserved vs spot(有中斷風險)。
容量計劃:季度帳戶/集群限制,雲配額,PSP/CDN限制。

故障準備和DR

Multi-AZ/region:每個肩膀≈ 60%的負載。
失敗計劃:withdraw Anycast,GSLB切換,TTL ≤ 60-120 s。
關鍵依賴性:PSP/銀行限制,二級提供商。
定期練習:遊戲日,PoP/BG/緩存關閉。

早期飽和的可觀察性和信號

p95/p99的增長和隊列在穩定的輸入。
高速緩存的命中率下降,起源的增長。
Retransmits/ECN CE的增加,TLS的恢復下降。
身高429/timeout和retry-rate。
對於DB,沖突增加,checkpoint時間,WAL fsync。

操作實踐

每月Capacity評論:事實vs計劃。
在活動下更改Windows:內核和限制的凍結。
Prewarm(CDN/DNS/TLS/池)在峰值前10-30分鐘。
極限測試:在Git中捕獲極限/池的configi。

iGaming/fintech的細節

比賽/比賽:spike+plateau配置文件,機器人灰色路線,單獨的註冊/存款限制。
付款/PSP:提供商/方法配額,後退路由,egress-IP池,SLA時間到錢包。

內容提供商: 分發工作室,熱緩存,shard池.

Antifrod/AML:規則/得分限制,高峰時降級為輕規則。

實施支票

  • 高峰預測(基數/季節/活動),兩種情況。
  • SLO/有缺陷的預算和目標頭部 ≥ 30%。
  • 按圖層分組(edge/proxy/app/cache/DB/IO/網絡)。
  • 限制:rate-limit,隊列,idempotency, retry-budget。
[] HPA/KEDA + warm pools;在活動前展開的計劃。
  • Multi-AZ/region,failover-playbooks,TTL和GSLB。
  • 雲配額/PSP/CDN保持一致並記錄下來。
  • 可觀察性:可見性減震板,早期飽和信號。
  • DR演習和定期的機會審查。

典型錯誤

沒有尾巴/尖峰的平均RPS計劃。
ρ≈0.9「紙上」-潛伏期在微小的噪音下爆炸。
忽略外部服務限制(PSP/CDN/DB群集)。
沒有階梯模式,反向壓力是級聯的。
沒有預熱的汽車規模-在峰值之後「跟上」。
所有層的單個頭部-瓶頸遷移。

迷你花花公子

高峰事件發生前(T-30分鐘)

1.增加minReplicas/target HPA,啟用戰爭池。
2.加熱CDN/DNS/TLS/連接器,加熱緩存。
3.通過安排提高池限制和PSP配額。
4.打開灰色路線/機器人過濾器,縮小重型終端。

區域部分損失

1.GSLB →鄰近地區,TTL 60-120 s。
2.啟用degrade模式(緩存/簡化發行)。
3.重新分配PSP/egress-IP限制。
4.狀態通信,p95控制/錯誤。

回避激增

1.減少retry-budget,啟用backoff+jitter。
2.在GET上啟用request-collapsing/SWR。
3.暫時收緊「嘈雜」ASN的限額。

結果

功率規劃是需求預測+工程模型+安全余量+操作杠桿。正式化SLO和頭部,考慮外部限制,自動縮放和降級,測量「毫秒成本」,並進行定期的機會審查。然後,負載增長不會變成風險,而是變成可管理的業務指標。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。