Google Compute Engine上的1个vCPU基本上是1个物理CPU核心的一半吗?

时间:2017-08-30 18:50:54

标签: multithreading google-cloud-platform google-compute-engine cpu-usage vcpu

Google的Machine types page声明:

  

对于n1系列机器类型,虚拟CPU实现为   2.6 GHz Intel Xeon E5上的单硬件超线程(Sandy   Bridge),2.5 GHz Intel Xeon E5 v2(Ivy Bridge)等等

假设a single physical CPU core with hyper-threading appears as two logical CPUs to an operating system,那么如果n1-standard-2机器被描述为2个虚拟CPU和7.5 GB内存,那么这实际上意味着1个CPU核心,对吗?

因此,如果我尝试follow hardware recommendations for an InfluxDB instance推荐2个CPU内核,那么我应该瞄准具有4vCPU的Google Compute Engine机器,对吗?

4 个答案:

答案 0 :(得分:6)

通常,当软件告诉您需要多少核心时,他们不会考虑超线程。请记住,直到最近,AMD都没有(超线程)。因此2个核心意味着2个vCPU。是的,单个HT CPU核心显示为操作系统的2个CPU,但不能完全执行2个真正独立的CPU核心。

答案 1 :(得分:0)

是的,您应该针对具有4个vCPU的GCE机器类型...从本地环境迁移时,您已经习惯了具有超线程的物理内核。在GCP中,这些称为vCPU或虚拟CPU。一个vCPU相当于一个超线程内核。因此,如果前提是您拥有一个单核超线程CPU,则实际上一个物理核将是两个虚拟CPU。因此,请记住这一点,因为人们经常会立即进行测试。他们会说:“我有一个四核物理机,我将在云中运行四个核”,并问“为什么它们的性能不一样?!!!”

答案 2 :(得分:0)

如果将n1-standard-2机器描述为2个虚拟CPU和7.5 GB内存,那么这实际上意味着1个CPU内核,对吧?

我相信,是的。

因此,如果我要针对推荐2个CPU内核的InfluxDB实例遵循硬件建议,那么我应该针对具有4vCPU的Google Compute Engine计算机,对吗?

我认为,它们意味着2个物理核心,而与超线程(HT)无关,因为HT的性能不是稳定的参考。 但是,IMO的建议还应包含每个物理核心的速度。 如果软件建议使用2个CPU内核,则GCP上需要4个vCPU。

答案 3 :(得分:0)

很久很久以前,“ CPU”(例如,在“ top”输出中看到的内容),套接字,内核和线程之间存在1对1的对等关系。 (如果愿意,也可以使用“处理器”和/或“芯片”。)

因此,许多人习惯于互换使用两个或多个这些术语。尤其是“ CPU”和“核心”。

然后,CPU设计人员开始将多个内核放置在单个管芯/芯片上。因此,“插槽”或​​“处理器”或“芯片”不再是单个内核,而“ CPU”与“内核”仍然是一对一的关系。因此,互换这两个术语仍然“可以”。

然后,CPU设计人员开始在单个内核中放置多个“线程”(例如,超线程)。操作系统会将每个超线程表示为一个“ CPU”,因此“ CPU”与“线程”与“核心”之间不再存在一对一的对应关系。

而且,不同的CPU系列每个内核可以具有不同数量的线程。

但是当“核心”指的是“ CPU”仍然存在时。