

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 控制成本和並行
<a name="cost-concurrency-controls"></a>

在傳統轉譯陣列上，固定基礎設施會建立並行和成本的間接限制。共用檔案系統的輸送量限制了工作者存取資料的速度。固定數量的轉譯節點會限制同時執行的任務數量。這些瓶頸會減緩轉譯速度，但也會防止意外支出。

使用 AWS 截止日期雲端，您可以精確直接控制成本和並行。您可以快速擴展以快速完成任務，並使用強制執行硬貨幣上限的預算和限制尖峰並行的機群設定。與傳統陣列不同，您不需要為了成本控制而交易轉譯速度，您可以同時擁有兩者。

使用截止日期雲端，您也可以基於其他原因限制資源用量，例如比對固定數量的軟體授權。下列機制各自在不同的層級運作。您可以合併它們以符合組織的需求。

## 成本和並行控制的比較
<a name="cost-concurrency-comparison"></a>

下表摘要說明截止日期雲端中可用的控制項。根據您想要限制的內容，選擇一或多個 。


| 控制項 | Level | 它的功能 | 最適合 | 
| --- | --- | --- | --- | 
| 機群最大工作者計數 | 機群 | 限制可在機群中同時執行的工作者總數，無論佇列任務數量為何。 | 機群中所有任務的尖峰運算硬性上限。取代固定數量轉譯節點的自然限制。 | 
| 任務工作者計數上限 | 任務 | 限制指派給單一任務的工作者數量。機群中的其他工作者仍然可用於其他任務。 | 防止單一大型任務耗用整個機群，而較小的任務會等待。 | 
| 資源限制 | 陣列或佇列 | 限制可同時使用共用資源 （例如軟體授權或檔案伺服器） 的任務數量。 | 將並行與跨任務或佇列共用的限制資源相符。取代檔案系統輸送量或授權計數的自然限制。 | 
| 具有限制動作的預算 | 佇列 | 追蹤佇列的累積花費。當花費達到閾值時，動作會停止排程新工作或取消執行中的工作。 | 對專案或時段的總花費強制執行美元上限。 | 
| 任務優先順序 | 任務 | 決定當多個任務爭奪相同的工作者時，會先處理哪些任務。 | 在不關鍵任務之前確保緊急工作流程，而不會變更機群容量。 | 

## 機群最大工作者計數
<a name="cost-concurrency-fleet-max"></a>

機群上的**工作者計數上限**設定會限制可以同時執行的工作者數量。當機群達到此上限時，即使有更多任務正在等待，也會停止啟動新工作者。此設定最直接取代固定大小轉譯陣列的自然並行限制。

當您想要在機群層級限制尖峰運算成本時，請使用此設定。例如，將上限設定為 50 名工作者，表示無論佇列深度為何，您永遠不會為超過 50 個並行執行個體付費。

如需詳細資訊，請參閱[自動擴展組態](auto-scaling-configuration.md)。

## 任務工作者計數上限
<a name="cost-concurrency-job-max"></a>

任務上的**max-worker-count**選項會限制有多少工作者可以處理該特定任務。當達到上限時，即使機群中有可用的工作者，也不會再將工作者指派給任務。佇列中的其他任務仍然可以使用剩餘的工作者。

當您想要防止單一大型任務控制機群時，請使用此設定。例如，如果您的機群有 100 名工作者，而您向 提交了 10，000 個影格任務`--max-worker-count 50`，則剩餘的 50 名工作者仍然可用於其他任務。您也可以在提交後變更此值。

```
deadline bundle submit my_job --max-worker-count 50
```

## 資源限制
<a name="cost-concurrency-limits"></a>

**資源限制**會限制可同時使用受限資源的任務數量，例如浮動軟體授權或輸送量有限的檔案伺服器。限制是在陣列層級定義，並與一或多個佇列相關聯。任務中宣告限制要求的步驟只會執行高達可用計數的任務。

當您有具有固定容量的共用資源時，請使用限制。例如，如果您有 25 個渲染器的浮動授權，請建立 25 個的限制。在此限制下，不超過 25 個任務會在共用該授權的所有佇列中同時使用該授權。

如需詳細資訊，請參閱*《截止日期雲端開發人員指南*》中的[建立任務的資源限制](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/build-job-limits.html)。

## 具有限制動作的預算
<a name="cost-concurrency-budgets"></a>

截止日期雲端**預算**會追蹤一段時間內佇列的累積預估花費。您可以設定當花費達到閾值時觸發*的限制動作*。可用的動作包括：
+ **停止排程新工作** – 執行中的任務完成，但機群停止接受新任務。
+ **立即停止所有工作** – 所有執行中的任務都會取消，而且不會指派新的任務。

當您想要強制執行專案或帳單期間的美元上限時，請使用預算。您可以使用不同的動作建立多個閾值。例如，停止排程剩餘 5，000 USD，以允許目前的工作正常完成，並在花費達到剩餘 0 USD 時取消所有工作。

如需詳細資訊，請參閱[使用預算控制成本](using-budget-manager.md)。

## 任務優先順序
<a name="cost-concurrency-priority"></a>

當多個任務爭奪相同佇列中的工作者時，**任務優先順序**會影響處理任務的順序。優先順序範圍從 0 到 100，通常會先處理較高的數字。具有相同優先順序的任務會依收到的順序處理。

優先順序不會直接限制並行或成本。相反地，它有助於確保最重要的工作在機群容量為 時，會先取得工作者。結合優先順序與機群最大工作者計數，以控制哪些任務會先執行，以及運算總計執行多少。

## 限制您的支出費率
<a name="cost-concurrency-spend-rate"></a>

機群的成本來自其執行中的工作者，因此您可以透過設定工作者數量上限來限制機群的花費率。兩個控制項可一起運作：
+ **機群最大工作者計數**透過限制一次可以執行的工作者數量來設定尖峰支出率。如需工作者每小時成本組成項目的詳細資訊，請參閱 [了解服務受管機群的成本模型](cost-model-smf.md)。
+ **預算**限制累積支出。預算會追蹤一段時間內的總預估花費，而不是速率，因此會隨著機群的容量上限增加硬性的金額限制。

## 混合 Spot 和隨需容量
<a name="cost-concurrency-market-options"></a>

每個服務受管機群都使用單一執行個體市場選項：Spot、隨需或等待並儲存。若要結合市場選項，請為每個選項建立個別機群，並將機群與相同佇列建立關聯。如需詳細資訊，請參閱[服務受管機群](fleet-types.md#fleet-types-smf)及[關聯佇列和機群](associate-a-queue-and-fleet.md)。

當佇列有多個機群時，它會將任務平均分配到這些機群。若要改為將一個機群視為主要容量，將另一個機群視為溢位，請調整機群的工作者計數上限。*截止日期雲端開發人員指南*中的[容量管理器](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/examples-cfn-capacity-manager.html)範例會自動調整混合等待和儲存加 Spot 設定。

## 在忙碌期間暫時提高限制
<a name="cost-concurrency-crunch"></a>

所有這些控制項都可以隨時調整。在任務活動增加期間，您可以暫時提高限制。例如，在交付截止日期之前，您可能會提高機群的工作者數量上限、增加預算閾值，以及新增待命工作者以減少任務啟動延遲。在截止日期之後，再次降低設定。

您可以從截止日期雲端主控台更新機群自動擴展設定和預算。若要依排程變更容量，例如在工作時間內提高待命工作者計數，請使用 GitHub 網站上的 [fleet\_standby\_scheduling](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/fleet_standby_scheduling) 範例 CloudFormation 範本。如果您需要的容量超過您帳戶的服務配額，請參閱 [的服務配額和限流 Deadline Cloud](deadline-cloud-quotas.md)。

## 合併控制項
<a name="cost-concurrency-choosing"></a>

每個控制項都有一個需求。下列案例示範如何結合控制項：

「我不希望一個大型任務佔用較小的任務」  
在大型任務`--max-worker-count`上設定 ，以為其他任務保留機群容量。或者，在較小的任務上設定更高的優先順序。

「我想要成本控制和公平共享的組合」  
設定機群最大工作者計數、針對大型任務使用每個工作的最大工作者計數，並將預算新增為安全網路。此組合可為您提供尖峰容量限制、每個工作公平性，以及美元退避。