我有一个 Elastic Beanstalk 工作应用程序,它正在执行一些内存密集型单线程计算。所有满足我的内存要求 (16 Gb) 的可用实例类型都有 2 个以上的 vCPU,因此我的 CPU 使用率仅达到 50%。 编辑: 这只是启用超线程时报告 CPU 使用率的一个怪癖
我发现,在我感兴趣的实例类型上,我应该能够通过设置来禁用超线程ThreadsPerCore CPU 选项到 1,给我一个免费性能提升,但 Elastic Beanstalk 似乎没有提供在其标准设置。
文档中有很多关于如何使用添加自定义资源的示例.ebextensions 中的云形成。他们还提到,EB 创建的标准资源可以修改;但我在实践中找不到任何这方面的例子。我以前没有使用过云的形成,所以我很难把这些部分拼凑起来!
更新:看着这个答案,看起来我可以“重新声明”EB 资源并覆盖配置,因此我在 .ebextensions .config 文件中尝试了以下内容:
Resources:
AWSEBEC2LaunchTemplate:
Type: AWS::EC2::LaunchTemplate
Properties:
LaunchTemplateData:
CpuOptions:
ThreadsPerCore: 1
这感觉让我更接近了,但是现在当我部署到 Elastic Beanstalk 时,我收到以下错误:InvalidParameterValue: Both EC2 Launch Template and AS Launch Configuration exist in the template.
Google 上没有找到该结果。
这似乎可能是指自动缩放组使用启动模板或启动配置,但不能同时使用两者;但我没有接触过缩放组,当我查看 EB 作为标准创建的资源时,没有启动配置,只有启动模板。