gpt4 book ai didi

amazon-web-services - Fargate 中的 vCPU 的真正含义是什么?

转载 作者:行者123 更新时间:2023-12-04 02:20:26 24 4
gpt4 key购买 nike

我试图回答我的问题 herehere ,但我知道我需要具体了解 vCPU 的 Fargate 实现。所以我的问题是:

  • 如果我为我的任务分配 4 个 vCPU,这是否意味着我的
    单线程在此任务中运行在容器上的应用程序将能够充分使用所有这些 vCPU,因为它们本质上只是一个
    我可以使用处理器内核的部分时间?
  • 比方说,我为我的任务分配了 4 个 vCPU,但在技术层面上,我
    将 4 个 vCPU 分配给可以自由处理一个的物理内核
    线程(甚至更多的超线程)。我的逻辑是否正确
    法盖特案?

  • p.s.这是一个 node.js 应用程序,它运行与多个玩家交互的 session ,所以我想提供一个 具有最大容量的 node.js 进程。

    最佳答案

    Fargate 在后台使用 ECS(弹性容器服务)来编排 Fargate 容器。 ECS 反过来又依赖 EC2 提供的计算资源来托管容器。根据 AWS Fargate FAQ's :

    Amazon Elastic Container Service (ECS) is a highly scalable, high performance container management service that supports Docker containers and allows you to easily run applications on a managed cluster of Amazon EC2 instances...

    ECS uses containers provisioned by Fargate to automatically scale, load balance, and manage scheduling of your containers


    这意味着 vCPU 本质上与 EC2 实例 vCPU 相同。来自 docs :

    Amazon EC2 instances support Intel Hyper-Threading Technology, which enables multiple threads to run concurrently on a single Intel Xeon CPU core. Each vCPU is a hyperthread of an Intel Xeon CPU core, except for T2 instances.


    所以回答你的问题:
  • 如果您将 4 个 vCPU 分配给一个单线程应用程序 - 它只会使用一个 vCPU,因为 vCPU 只是一个单核的超线程。
  • 当您选择 4 个 vCPU 时,您实际上是在将 4 个超线程分配给单个物理内核。因此,您的单线程应用程序仍将仅使用单个内核。

  • 如果您想要对 CPU 资源进行更细粒度的控制——例如分配多个内核(可由单线程应用程序使用)——您可能必须使用 EC2 启动类型(并管理您自己的服务器)而不是使用 Fargate。

    编辑 2021 :评论中已经指出,大多数 EC2 实例实际上每个 CPU 核心都有 2 个超线程。一些专门的实例,例如 c6g 和 m6g,每个核心有 1 个线程,但大多数 EC2 实例有 2 个线程/核心。因此,ECS/Fargate 使用的实例很可能每个内核也有 2 个线程。更多详情见 doco

    关于amazon-web-services - Fargate 中的 vCPU 的真正含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52090968/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com