iPAS 備考專區 登入

iPAS AI 應用規劃師 中級 科目一 AI 技術應用與規劃・114 年第二次・L21・第 31 題

每秒萬次推論請求,什麼架構撐得住?

原題

某 AI 服務系統每次推論請求需約 1 秒完成,且必須支援高達 10,000 次請求每秒(RPS)的流量。為確保系統具備高可用性且能穩定應付流量峰值,下列哪一種架構方案最為合適?

白話

一個 AI 推論服務,每次請求要花 1 秒處理,而且尖峰時刻每秒有 10,000 個請求進來(10,000 RPS)。

問你:什麼架構方案最能同時確保高可用性(不容易掛掉)且能應付流量峰值?

一句話總結

每秒 1 萬個推論請求,每次要 1 秒,最好的架構是:容器化部署 + 水平擴展多個服務實例 + Auto Scaling(自動彈性伸縮),可以根據流量動態增減機器,流量大就自動加機器,流量小就縮回去省錢,且不會有單點故障。

情境

先感受問題:10,000 RPS 是什麼規模

假設「星雲 AI 公司」提供一個圖片辨識 API,每張圖片辨識要花 1 秒。

先算一下規模:

每秒 10,000 個請求進來

每個請求要花 1 秒才能跑完

同時需要處理中的請求數 = 10,000 × 1 秒 = 10,000 個併發

也就是說,任意一個時刻,系統要同時「hold 住」10,000 個正在處理中的請求。

一台超強的伺服器,就算有 128 核心 CPU,同時只能跑 128 個執行緒,根本塞不下 10,000 個。要應付這個規模,必須把工作分散到許多台機器。

再加上「高可用性」的要求:如果只有一台機器,那台壞了整個服務就停了。要做到「掛了一台,其他台繼續跑」,就必須有多台機器並行提供服務。

舊方法

單機垂直擴展或限流為什麼做不好

  1. 垂直擴展(加強單台機器)有天花板:就算買一台最強的伺服器,RAM 最多幾 TB,CPU 最多幾百核,永遠有上限。當流量超過單台上限,就只能加機器(水平擴展)。而且一台機器壞了,服務就全掛。
  2. 超強伺服器成本非常高:能同時處理 10,000 個 AI 推論請求的單台機器,如果存在的話,售價可能是幾十台普通機器的總和,而且備援成本更高。用很多台中等機器,性價比遠高於一台超強機。
  3. 限流根本是反其道而行:限制最大連線數,等於主動拒絕部分用戶的請求,在商業上不可接受。尖峰時刻本來就是服務最需要支撐的時候,直接關門等於放棄業務。
  4. 批次處理增加延遲:把 1000 個請求排成一批再一起處理,第 1 個請求要等 999 個請求都進來才開始跑,等待時間大幅增加,對需要即時回應的 AI API 服務不可行。
  5. 固定數量的機器無法應對峰谷:一天 24 小時流量不同,晚上 3 點可能只有 100 RPS,中午可能有 10,000 RPS。如果固定開 100 台機器,晚上 99 台在閒置浪費錢;如果固定開 5 台,中午完全撐不住。

新方法

容器化 + 水平擴展 + Auto Scaling,怎麼解

回到星雲 AI 公司。正確架構:

容器化部署(Containerization):把 AI 推論服務打包成 Docker 容器,每個容器是一個獨立的推論實例,可以快速複製出來。容器啟動只要幾秒鐘(相比傳統虛擬機的幾分鐘),能快速應對流量變化。

水平擴展(Horizontal Scaling):同時跑多個容器實例:

容器 1:處理請求 #1~100

容器 2:處理請求 #101~200

容器 3:處理請求 #201~300

... 依此類推,直到塞滿 10,000 RPS

Auto Scaling(自動彈性伸縮):系統監控 CPU 使用率和請求隊列長度,自動決定要開幾個容器:

凌晨 3 點:流量 50 RPS → 自動縮到 5 個容器

中午 12 點:流量 8,000 RPS → 自動擴到 85 個容器

下班後:流量回落 → 自動縮回

任何一個容器掛掉,其他容器繼續服務,Kubernetes 或 ECS 自動補一個新的上來,做到高可用性。

這就是選項 B 講的:採用容器化部署並水平擴展服務實例,結合自動彈性伸縮機制(Auto Scaling)。

錯選項

為什麼其他選項是錯的

A依賴單台超高效能伺服器進行垂直擴展,提升硬體規格

字面在說什麼

買一台規格最強的伺服器(更多 CPU、更多 RAM、更快的 GPU),靠它一台機器扛住所有請求。

為什麼不對

兩個根本問題:1. 物理上限:再強的單台機器也有 CPU 核心數上限,同一時間能處理的請求數有限,10,000 RPS 每次耗時 1 秒,代表需要同時持有 10,000 個請求,超過任何現有單機的能力;2. 單點故障:一台機器壞了,整個服務就掛了,完全違背「高可用性」的要求。題目明確說「高可用性」,垂直擴展天然不符合。

誰會選錯

對雲端架構不熟悉、直覺認為「機器規格越強越好」的考生。傳統思維是「一台伺服器扛住一切」,但現代大流量服務的標準答案幾乎都是水平擴展。記住:垂直擴展有天花板,且高可用性只能靠多台機器達成。

C限制最大併發連線數,以避免系統過載

字面在說什麼

設定一個最大連線數限制,例如最多同時處理 1,000 個請求,超過的直接拒絕或排隊等待。

為什麼不對

這不是解決問題,是迴避問題。限流(Rate Limiting)確實是保護系統的手段,但前提是「系統容量本來就不夠,需要保護」。題目問的是「如何讓系統支援 10,000 RPS」,限制連線數只是讓 9,000 個請求被拒絕,業務損失極大。正確做法是擴展容量,而不是縮減服務量。

誰會選錯

知道「限流是防護機制」的考生,誤以為這是「穩定應付峰值」的正確做法。限流是最後的熔斷手段,不是主動架構設計策略。一個能支援 10,000 RPS 的健康系統,不需要靠限流保護自己。

D增加批次處理大小,一次同時處理上千筆請求

字面在說什麼

不一個一個處理,而是等 1,000 個請求都進來了,一起打包送進模型處理,利用 GPU 的並行能力提升吞吐量。

為什麼不對

批次處理(Batch Processing)對吞吐量有幫助,但對延遲是傷害。題目說每次推論「需約 1 秒完成」,批次大小 1,000 意味著第 1 個請求要等 999 個後來者都進來才開始跑,等待時間可能長達好幾秒,嚴重違反即時 API 服務的延遲要求。批次處理適合離線任務,不適合即時線上推論服務。

誰會選錯

知道「GPU 批次推論效率高」、也知道「大 batch size 能提升 throughput」的考生,在吞吐量優化和延遲要求之間判斷失誤。記住:即時 API 服務的核心約束是延遲(Latency),不是純粹的吞吐量(Throughput)。兩者有時相互衝突,批次處理犧牲了延遲換取吞吐量,對即時服務不合適。

變形題

同個考點下次怎麼變形

延伸

想再往下看,這 5 個

答案、題目或解析有問題?回報這題

出處:iPAS 經濟部產業人才能力鑑定 ・ 114 年第二次 iPAS AI 應用規劃師 中級 科目一 第 31 題

看官方原文 PDF

原題 © 經濟部產業發展署,AITerms.tw 僅作教學解析使用,本站解析以 CC BY-NC-SA 4.0 授權。