Pet*_*val 10 amazon-web-services aws-ecs aws-fargate
我试图在这里和这里得到我的问题的答案,但我明白我需要特别知道远程控制器的vCPU实现.所以我的问题是:
ps这是一个node.js应用程序,它运行会话,多个玩家互相交互,所以我确实希望提供一个具有最大容量的单个 node.js进程.
npe*_*npe 12
/proc/cpuinfo您可以通过检查for字段来检查 ECS 运行的物理 CPU model name。您可以仅在/脚本cat中添加此文件,或使用ECS Exec打开与容器的终端会话。ENTRYPOINTCMD
实际上我最近已经这样做了,因为我们一直在观察我们的一些 ECS 服务出现一些奇怪的性能下降。在我们运行的 84 个 ECS 任务中,分布如下:
Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz (10 tasks)
Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz (22 tasks)
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz (10 tasks)
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz (25 tasks)
Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz (17 tasks)
Run Code Online (Sandbox Code Playgroud)
有趣的是,现在已经是 2022 年了,AWS 仍在运行 2016 年的 CPU(下E5-2686 v4)。所有这些任务都是全额付费的按需 ECS Fargate。当在 SPOT 上运行一些任务时,我什至得到了E5-2666 v32015 年的结果,我想。
虽然为我们的 ECS 任务分配随机 CPU 在某种程度上是预料之中的,但这些差异非常显着,以至于我观察到我的一项服务报告空闲时的 CPU 利用率为 25% 或 45%,具体取决于它在“ECS 实例类型”上命中的 CPU彩票”。
Fargate在后台使用ECS(弹性容器服务)来编排Fargate容器。反过来,ECS依靠EC2提供给主机容器的计算资源。根据AWS Fargate 常见问题解答:
Amazon Elastic Container Service(ECS)是一种高度可扩展的高性能容器管理服务,支持Docker容器,使您可以轻松地在Amazon EC2实例的托管集群上运行应用程序...
ECS使用Fargate提供的容器来自动扩展,平衡负载并管理容器的调度
这意味着vCPU本质上与EC2实例vCPU相同。从文档:
Amazon EC2实例支持Intel超线程技术,该技术使多个线程可以在单个Intel Xeon CPU内核上同时运行。除T2实例外,每个vCPU都是Intel Xeon CPU内核的超线程。
因此,回答您的问题:
如果将4个vCPU分配给单个线程应用程序-它只会使用一个vCPU,因为vCPU只是单个内核的超线程。
当选择4个vCPU时,实际上是将4个超线程分配给单个物理核心。因此,您的单线程应用程序仍将仅使用单个内核。
如果要对CPU资源进行更细粒度的控制(例如分配多个内核(可以由单个线程的应用程序使用)),则可能必须使用EC2启动类型(并管理自己的服务器),而不是使用Fargate。
| 归档时间: |
|
| 查看次数: |
3650 次 |
| 最近记录: |