AWS EC2 实例超线程

zmc*_*hon 5 vcpu multi-core hyperthreading amazon-ec2 amazon-web-services

我目前正在对已迁移到 AWS 的 Web 应用程序进行一些性能测试。

我们注意到的一件事是 vCPU 性能似乎没有我们预期的那么好。事实上,在高利用率的单 vCPU 机器上,我们认识到 50% 的报告 CPU 使用率(通过 vmstat)被报告为 CPU 窃取。我们似乎只获得了一半的核心周期。

经过一些研究,似乎在大多数 EC2 实例上,vCPU 实际上意味着您可以在单个内核上获得一个可用的超线程。实际上,这意味着每个 vCPU 只能依赖物理内核 50% 的周期。

我们发现有几篇文章似乎证实了我们所看到的:http : //www.pythian.com/blog/virtual-cpus-with-amazon-web-services/

vCPU 真的只是一个核心上的单个超线程,还是我们错误地解释了数据?如果是真的,是否有任何实例类型可以让我们真正访问内核的两个超线程?

显然,我们可以设置双倍 vCPU 数量的 EC2 实例,但这会影响软件许可,因为我们运行的专有软件目前由内核授权。软件供应商目前不区分 vCPU 和核心。我们不想支付两倍的许可费用,因为我们的基础设施提供商和软件供应商的 CPU 定义不一致。

zmc*_*hon 6

我从亚马逊收到确认,vCPU 实际上是单核上的单个超线程。

附带说明一下,这对我们与之合作的软件供应商(最大的企业公司之一)来说是个新闻,他们很好地调整了在 AWS 环境中运行的软件的许可条款。