我试图获取有关问题QProcess::systemEnvironment
和here的答案,但我知道我需要特别了解vCPU的Fargate实现。所以我的问题是:
p.s。这是一个node.js应用程序,它与多个相互交互的播放器运行会话,因此我确实想提供一个具有最大容量的单个 node.js进程。
答案 0 :(得分:2)
Fargate在后台使用ECS(弹性容器服务)来编排Fargate容器。反过来,ECS依靠EC2提供给主机容器的计算资源。根据AWS Fargate FAQ's:
Amazon Elastic Container Service(ECS)是一种高度可扩展的高性能容器管理服务,它支持Docker容器,并允许您在Amazon EC2实例的托管集群上轻松运行应用程序 ...
ECS使用Fargate提供的容器来自动扩展,负载均衡和管理容器的调度
这意味着vCPU本质上与EC2实例vCPU相同。来自docs:
Amazon EC2实例支持Intel超线程技术,该技术使多个线程可以在单个Intel Xeon CPU内核上同时运行。除T2实例外,每个vCPU都是Intel Xeon CPU内核的超线程。
所以回答您的问题:
如果将4个vCPU分配给单个线程应用程序-它只会使用一个vCPU,因为vCPU只是单个内核的超线程。
当您选择4个vCPU时,实际上是将4个超线程分配给单个物理核心。因此,您的单线程应用程序仍将仅使用单个内核。
如果您想对CPU资源进行更精细的控制-例如分配多个内核(可以由一个线程的应用程序使用)-您可能必须使用EC2启动类型(并管理您自己的服务器),而不是使用Fargate。