AWS EC2实例超线程

我目前正在对我们已经转移到AWS的networking应用程序进行一些性能testing。

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

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

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

是真的,一个vCPU实际上只是一个核心上的一个超线程,还是我们不正确地解释数据? 如果这是真的,是否有实例types,我们实际上可以访问核心的两个超线程?

显然,我们可以使用vCPU数量的两倍来设置EC2实例,但是由于我们运行的专有软件目前已获得核心许可,因此会产生软件许可影响。 软件供应商目前不区分vCPU和核心。 我们不想支付许可费用的两倍,因为我们的基础架构提供商和软件供应商的CPU定义并不一致。

我从亚马逊那里得到确认,一个vCPU实际上是一个核心上的单个超线程。

另外值得注意的是,这是我们正在与之合作的软件供应商(其中最大的企业公司之一)的消息,他们很好地调整了在AWS环境中运行的软件的许可条款。