簡體   English   中英

AWS 批處理始終為每個作業啟動新的 ec2 實例

[英]AWS batch to always launch new ec2 instance for each job

我已經設置了一個批處理環境

  1. 托管計算環境
  2. 作業隊列
  3. 工作定義

實際工作(docker 容器)會進行大量視頻編碼,因此會占用大部分 CPU。 該過程本身需要幾分鍾(接近 5 分鍾來初始化所有編碼器)。 理想情況下,我希望每個實例有一份工作,這樣編碼器就不會缺乏 CPU。

我的問題是當我同時啟動多個作業或足夠接近時,AWS 批處理決定在同一個實例中啟動它們,因為第一個容器仍在初始化並且尚未開始使用 CPU。 對我來說,這似乎是一種競爭條件,其中兩個作業都將創建的實例視為可用。

有沒有一種方法可以為每個作業啟動一個實例,而無需查找已經在運行的實例? 或者在為特定作業指定實例后鎖定實例的任何其他解決方案?

非常感謝你的幫助。

您不必擔心將作業分離到不同的實例上,因為運行作業的容器在它們可以使用的 vCPU 數量方面受到限制。 例如,如果您啟動兩個分別需要 4 個 vCPU 的作業,Batch 可能會啟動一個具有 8 個 vCPU 的實例並在同一實例上運行這兩個作業。 每個作業只能訪問 4 個 vCPU,因此性能應該與單獨運行的作業相同,實例上沒有其他作業。

但是,如果您仍希望將作業分離到單獨的實例上,則可以通過將作業的 vCPU 與計算環境中的實例類型進行匹配來實現。 例如,如果您有一個需要 4 個 vCPU 的作業,您可以將計算環境配置為僅允許 c5.xlarge 實例,因此每個實例只能運行一個作業。 但是,如果您想運行具有更高 vCPU 要求的其他作業,則必須在不同的計算環境中運行它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM