Function Compute的CPU執行個體和GPU執行個體均支援按量模式和預留模式。按量模式根據請求時間長度計費,可以結合并發度設定提高執行個體的資源使用率。預留模式則是從執行個體啟動完成開始計費,到執行個體釋放為止,可用於解決冷啟動問題。本文為您介紹兩類執行個體的執行個體模式、計費方式及執行個體規格。
執行個體類型
CPU執行個體:Function Compute的基本執行個體。適用於突發流量和計算密集等各種情境。
GPU執行個體:提供Turing架構的GPU執行個體。主要適用於音視頻、AI人工智慧和影像處理等情境。在不同的情境中,將不同的業務負載下沉至GPU硬體加速,從而提升業務處理效率。
GPU執行個體僅支援通過容器鏡像方式部署。
使用GPU執行個體過程中,為了確保您的業務正常進行,請加入DingTalk使用者群(DingTalk群號:64970014484),並提供以下資訊。
組織名稱,例如您所在的公司名稱。
您的阿里雲帳號ID。
您使用GPU執行個體的地區,例如華南1(深圳)。
連絡方式,例如您的手機號、郵箱或DingTalk帳號等。
執行個體模式
CPU執行個體和GPU執行個體均支援兩種執行個體模式:按量模式和預留模式。兩種執行個體模式說明如下。
按量模式
基本概念
按量模式是指函數執行個體的分配和釋放完全由Function Compute系統負責。Function Compute會根據函數的調用量自動進行執行個體擴縮容,在調用增加時建立執行個體,在請求減少後銷毀執行個體。整個過程中,通過請求自動觸發執行個體建立。如果執行個體在一段時間內(一般為3~5分鐘)不處理請求,會自動銷毀。首次發起調用時,需要等待執行個體冷啟動。
單個阿里雲帳號(主帳號)在單個地區內總執行個體數預設限制為100,實際數值以配額中心為準,如果您需要提高該限制,請前往配額中心申請。
計費方式
在按量模式下,函數執行時間長度的計量從請求執行函數開始,到請求執行完畢結束。按量模式下,同一個執行個體同一時間可以執行一個請求,也可以並發執行多個請求。更多資訊,請參見設定執行個體並發度。
在沒有函數調用請求時不分配執行個體,所以不會產生費用。只有發生函數調用時才會產生費用。關於具體的產品定價和計費,請參見計費概述。
如果您希望提高執行個體資源使用率,建議根據業務對資源的訴求,配置您的執行個體為單一實例多並發。在這種方案下,當多個任務同時在一個執行個體上執行時,CPU或者記憶體將被搶佔式共用,有效提高資源使用率。
按量模式下,一個執行個體執行一個請求時,執行時間長度的計量是從請求到達執行個體開始,到請求執行完畢為止。
按量模式下,一個執行個體並發執行多個請求時,執行時間長度的計量是從第一個請求到達執行個體開始,到最後一個請求執行完畢為止。並發執行請求時,可以複用資源節省費用。
預留模式
基本概念
預留模式是將函數執行個體的分配和釋放交由您管理,當配置預留函數執行個體後,預留的函數執行個體將會常駐,直到您主動將其釋放。Function Compute會優先將函數調用請求調度至預留的函數執行個體,當函數請求的並發超過預留的函數執行個體處理能力時,超出部分的請求被轉寄至按量模式的執行個體。關於刪除預留模式的執行個體,請參見配置Auto Scaling規則。
如果您希望解決冷啟動問題,預留模式是最佳方案。建議您根據業務資源預算選擇固定數量預留、根據波峰波穀特性選擇指定時間段預留或者按照水位閾值選擇自動調整方案。預留後,執行個體的平均冷啟動時延將明顯降低。
閑置模式
根據是否被分配vCPU資源,CPU執行個體可以分為活躍狀態和閑置狀態。預設情況下,閑置模式功能處於開啟狀態。
活躍狀態執行個體
活躍狀態執行個體是正在處理請求的執行個體,或者未啟用閑置模式的執行個體。預留模式執行個體在未啟用閑置模式時,即使未收到請求,Function Compute也會為其分配vCPU資源,確保正常運行背景工作。
閑置狀態執行個體
預留模式執行個體啟用閑置模式後,在沒有請求時會被Function Compute凍結其vCPU資源,使其進入閑置狀態。閑置狀態下不產生vCPU費用,這將為您節省大量的成本。當執行個體配置了PreFreeze回調程式時,會在回調結束後立即進入閑置狀態,否則會在請求結束後立即進入閑置狀態。關於執行個體狀態的更多資訊,請參見函數執行個體生命週期。
您可以根據業務情況選擇是否啟用閑置模式。
使用成本
如果您需要預留模式來消除冷啟動,又擔心預留成本過高,建議啟用閑置模式。您可以僅為閑置狀態的預留執行個體支付記憶體、磁碟費用,同時滿足無冷啟動的響應調用需求。
背景工作
如果您的函數需要運行背景工作,建議關閉閑置模式。例如:
使用依賴於內建調度或後台功能的應用程式框架,或依賴的中介軟體需要定期彙報心跳。
使用Go語言的Goroutine輕量級線程、Node.js語言的async函數或Java語言的非同步線程執行非同步作業。
根據是否被分配GPU資源,GPU執行個體可以分為活躍狀態和閑置狀態。預設情況下,GPU執行個體的閑置模式功能處於開啟狀態。
活躍狀態執行個體
活躍狀態執行個體是正在處理請求的執行個體,或者未啟用閑置模式的執行個體。開啟閑置模式後,當預留的執行個體沒有請求時,Function Compute會將執行個體的GPU凍結,使其進入閑置狀態。
閑置狀態執行個體
在預留模式中,啟用了閑置模式且當前未處理任何請求的執行個體為閑置狀態執行個體。
計費方式
活躍狀態執行個體
預留模式的執行個體的計費從執行個體成功建立後開始,一直到您主動將其釋放為止。由於預留執行個體由您自己負責申請和釋放,所以即使預留的函數執行個體未執行任何請求,只要沒有釋放函數執行個體,您都需要為預留的函數執行個體按照活躍狀態的價格付費。
閑置狀態執行個體
開啟閑置模式後,申請的預留執行個體在未處理任何請求時將轉為閑置狀態,閑置狀態執行個體的費用遠遠小於活躍狀態執行個體,費用比例可參見各資源使用量的CU轉換係數。
執行個體規格
CPU執行個體
CPU執行個體包含以下執行個體規格,您可以根據業務需求選擇不同配置的執行個體。
vCPU(核)
記憶體規格(MB)
程式碼封裝大小上限(GB)
函數執行時間長度上限(s)
磁碟大小上限(GB)
頻寬能力上限(Gbps)
vCPU(核)
記憶體規格(MB)
程式碼封裝大小上限(GB)
函數執行時間長度上限(s)
磁碟大小上限(GB)
頻寬能力上限(Gbps)
0.05~16
取值說明:必須為0.05的倍數。
128~32768
取值說明:必須為64的倍數。
10
86400
10
取值說明:
512 MB,預設值。
10 GB。
5
vCPU大小(單位為核)與記憶體大小(單位為GB)的比例必須設定在1∶1到1∶4之間。
GPU執行個體
GPU執行個體包含以下執行個體規格,您可以根據業務需求選擇不同配置的執行個體。
fc.gpu.tesla.1執行個體規格的效能與NVIDIA T4效能基本一致。
執行個體規格
整卡顯存(GB)
整卡算力(TFLOPS)
可選切分規格
是否支援按量模式
是否支援普通預留模式
是否支援閑置預留模式
FP16算力
FP32算力
vGPU顯存(MB)
vGPU算力(卡)
vCPU(核)
記憶體規格(MB)
執行個體規格
整卡顯存(GB)
整卡算力(TFLOPS)
可選切分規格
是否支援按量模式
是否支援普通預留模式
是否支援閑置預留模式
FP16算力
FP32算力
vGPU顯存(MB)
vGPU算力(卡)
vCPU(核)
記憶體規格(MB)
fc.gpu.tesla.1
16
65
8
1024~16384(對應1 GB~16 GB)
取值說明:必須為1024 MB的倍數。
取值為vGPU顯存(GB)/16。例如,配置vGPU顯存為5 GB,則vGPU最高可得5/16張卡算力。
說明:由Function Compute系統自動分配,無需手動設定。
取值為0.05~(vGPU顯存(GB)/2)。
取值說明:必須為0.05的倍數。具體資訊,請參見GPU規格配置表。
取值為128~(顯存(GB)*2048)。
取值說明:必須為64的倍數。具體資訊,請參見GPU規格配置表。
Y
Y
Y
fc.gpu.ada.1
48
119
60
49152(對應48 GB)
取值說明:僅支援48 GB顯存規格。
預設分配整卡算力。
說明:由Function Compute系統自動分配,無需手動設定。
取值為8。
取值說明:僅支援8核vCPU規格。
取值為65536。
取值說明:僅支援64 GB記憶體規格。
N
Y
Y
Function ComputeGPU執行個體同時支援以下資源規格。
鏡像大小(GB)
函數執行時間長度上限(s)
磁碟大小上限(GB)
頻寬能力上限(Gbps)
鏡像大小(GB)
函數執行時間長度上限(s)
磁碟大小上限(GB)
頻寬能力上限(Gbps)
ACR企業版(標準版):15
ACR企業版(進階版):15
ACR企業版(基礎版):15
ACR個人版(免費):15
86400
10
5
執行個體規格設定為g1等同於設定為fc.gpu.tesla.1。
目前支援Tesla系列GPU執行個體的地區包括華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、日本(東京)、美國(維吉尼亞)和新加坡。
目前支援Ada系列GPU執行個體的地區包括華北2(北京)、華東1(杭州)、華東2(上海)和華南1(深圳)。
GPU規格配置表
相關文檔
通過配置Auto Scaling規則時可以開啟閑置模式,具體操作請參見配置Auto Scaling規則。
關於Function Compute的計費方式以及計費項目等更多資訊,請參見計費概述。
使用API建立函數時可以通過
instanceType
參數指定執行個體類型,請參見CreateFunction - 建立函數。關於如何通過控制台指定期望的執行個體類型和執行個體規格的具體操作,請參見管理函數。