本文說明如何指定密集配置政策,減少工作 VM 之間的網路延遲。
在可用區內,如果 VM 主機之間的實體距離較近,就能縮短 VM 之間的網路延遲時間。這項效能優勢特別適合用於緊密耦合的工作,例如使用 MPI 程式庫通訊的工作。建立作業時,您可以選擇指定密集配置政策,要求作業的 VM 彼此靠近。否則,預設 VM 放置位置通常會將 VM 分散到不同主機,以盡量減少電源故障的影響。
如要進一步瞭解密集配置政策,請參閱 Compute Engine 說明文件中的「關於配置政策」。
事前準備
- 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
-
如要取得建立作業所需的權限,請要求管理員授予下列 IAM 角色:
-
批次工作編輯者 (
roles/batch.jobsEditor
) 專案 -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) 在作業的服務帳戶上,預設為預設 Compute Engine 服務帳戶
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
-
批次工作編輯者 (
限制
除了緊湊型刊登位置政策的一般限制,Batch 還有下列限制:
- 如果您指定工作使用密集配置政策,Batch 會自動為工作 VM 建立及刪除密集配置政策。您無法為工作指定現有的密集配置政策。
- 您無法為密集配置政策指定 VM 數量。無論工作在多少部 VM 上執行,都會套用工作的密集配置政策。
建立及執行使用配置政策的工作
如要指定工作使用緊密放置政策,請使用 gcloud CLI 或 Batch API,將 collocation
欄位設為 COLLOCATED
。
gcloud
建立 JSON 檔案,指定工作的設定詳細資料,並將
collocation
欄位設為COLLOCATED
。舉例來說,如要建立指定緊湊放置政策的基本指令碼工作,請建立含有下列內容的 JSON 檔案:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}" } } ] }, "taskCount": 3 } ], "allocationPolicy": { "placement": { "collocation": "COLLOCATED" } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
如要建立及執行作業,請使用
gcloud batch jobs submit
指令:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
更改下列內容:
JOB_NAME
:作業名稱。LOCATION
:工作地點。JSON_CONFIGURATION_FILE
:JSON 檔案的路徑,內含作業的設定詳細資料。
API
對 jobs.create
方法發出 POST
要求,將 collocation
欄位設為 COLLOCATED
。
舉例來說,如要建立指定精簡放置政策的基本指令碼工作,請提出下列要求:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world from task ${BATCH_TASK_INDEX}"
}
}
]
},
"taskCount": 3
}
],
"allocationPolicy": {
"placement": {
"collocation": "COLLOCATED"
}
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
更改下列內容: