Google Compute Engine 上的 1 vCPU 基本上是 1 个物理 CPU 内核的一半吗?
Is 1 vCPU on Google Compute Engine basically half of 1 physical CPU core?
Google 的 Machine types page 指出:
For the n1 series of machine types, a virtual CPU is implemented as a
single hardware hyper-thread on a 2.6 GHz Intel Xeon E5 (Sandy
Bridge), 2.5 GHz Intel Xeon E5 v2 (Ivy Bridge)...etc
假设a single physical CPU core with hyper-threading appears as two logical CPUs to an operating system,那么如果描述为2个虚拟CPUs和7.5GB内存的n1-standard-2机器,那么这本质上意味着1CPU核心,对吧?
因此,如果我尝试 follow hardware recommendations for an InfluxDB instance 推荐 2 个 CPU 核心,那么我应该瞄准具有 4vCPUs 的 Google Compute Engine 机器, 正确吗?
通常,当软件告诉您他们需要多少个核心时,他们不会考虑超线程。请记住,AMD 直到最近才拥有它(超线程)。所以 2 个核心意味着 2 vCPUs。是的,单个 HT CPU 核心显示为 OS 的 2 CPUs,但并不像 2 个真正独立的 CPU 核心那样执行。
没错,您应该瞄准具有 4vCPUs 的 GCE 机器类型...当您从本地环境迁移时,您习惯于具有超线程。在 GCP 中,这些称为 vCPUs 或虚拟 CPUs。一个vCPU相当于一个超线程核心。因此,如果您在本地有一个单核超线程 CPU,那实际上是两个虚拟 CPU 到一个物理内核。因此,请始终牢记这一点,因为人们通常会立即进行测试。他们会说,"I have a four-cores physical machine and I'm going to run four cores in the cloud" 然后问 "why their performance isn't the same?!!!"
if the n1-standard-2 machine that is described as 2 virtual CPUs and 7.5 GB of memory, then this essentially means 1 CPU core, right?
我相信,是的。
So if I'm trying to follow hardware recommendations for an InfluxDB instance that recommends 2 CPU cores, then I should aim for a Google Compute Engine machine that has 4vCPUs, correct?
我认为,不管超线程 (HT) 是什么意思,都是 2 个物理内核,因为 HT 的性能不是一个稳定的参考。
但是 IMO,建议还应该包含每个物理核心的速度。
如果软件推荐2CPU核,你在GCP上需要4vCPU。
很久很久以前,'CPU'(例如在 "top" 的输出中看到的)、插座、核心和线。 (如果你愿意,也可以 "processor" and/or "chip"。)
因此,许多人养成了交替使用其中两个或多个术语的习惯。特别是 "CPU" 和 "core."
然后 CPU 设计师开始将多个内核放在一个 die/chip 上。所以 "socket" 或 "processor" 或 "chip" 不再是单核,但 "CPU" 与 "core." 仍然是 1 比 1 所以,交换这两个术语仍然是 "ok."
然后 CPU 设计人员开始将多个 "threads"(例如超线程)置于单个内核中。操作系统会将每个超线程呈现为 "CPU",因此 "CPU" 和 "thread" 以及 "core."
之间不再是一一对应的
而且,不同的 CPU 系列每个核心的线程数可能不同。
但指的是 "cores" 当一个意思 "CPUs" 仍然存在时。
https://cloud.google.com/compute/docs/cpu-platforms 说:
On Compute Engine, each virtual CPU (vCPU) is implemented as a single hardware multithread on one of the available CPU processors. On Intel Xeon processors, Intel Hyper-Threading Technology supports multiple app threads running on each physical processor core. You configure your Compute Engine VM instances with one or more of these multithreads as vCPUs. The specific size and shape of your VM instance determines the number of its vCPUs.
Google 的 Machine types page 指出:
For the n1 series of machine types, a virtual CPU is implemented as a single hardware hyper-thread on a 2.6 GHz Intel Xeon E5 (Sandy Bridge), 2.5 GHz Intel Xeon E5 v2 (Ivy Bridge)...etc
假设a single physical CPU core with hyper-threading appears as two logical CPUs to an operating system,那么如果描述为2个虚拟CPUs和7.5GB内存的n1-standard-2机器,那么这本质上意味着1CPU核心,对吧?
因此,如果我尝试 follow hardware recommendations for an InfluxDB instance 推荐 2 个 CPU 核心,那么我应该瞄准具有 4vCPUs 的 Google Compute Engine 机器, 正确吗?
通常,当软件告诉您他们需要多少个核心时,他们不会考虑超线程。请记住,AMD 直到最近才拥有它(超线程)。所以 2 个核心意味着 2 vCPUs。是的,单个 HT CPU 核心显示为 OS 的 2 CPUs,但并不像 2 个真正独立的 CPU 核心那样执行。
没错,您应该瞄准具有 4vCPUs 的 GCE 机器类型...当您从本地环境迁移时,您习惯于具有超线程。在 GCP 中,这些称为 vCPUs 或虚拟 CPUs。一个vCPU相当于一个超线程核心。因此,如果您在本地有一个单核超线程 CPU,那实际上是两个虚拟 CPU 到一个物理内核。因此,请始终牢记这一点,因为人们通常会立即进行测试。他们会说,"I have a four-cores physical machine and I'm going to run four cores in the cloud" 然后问 "why their performance isn't the same?!!!"
if the n1-standard-2 machine that is described as 2 virtual CPUs and 7.5 GB of memory, then this essentially means 1 CPU core, right?
我相信,是的。
So if I'm trying to follow hardware recommendations for an InfluxDB instance that recommends 2 CPU cores, then I should aim for a Google Compute Engine machine that has 4vCPUs, correct?
我认为,不管超线程 (HT) 是什么意思,都是 2 个物理内核,因为 HT 的性能不是一个稳定的参考。 但是 IMO,建议还应该包含每个物理核心的速度。 如果软件推荐2CPU核,你在GCP上需要4vCPU。
很久很久以前,'CPU'(例如在 "top" 的输出中看到的)、插座、核心和线。 (如果你愿意,也可以 "processor" and/or "chip"。)
因此,许多人养成了交替使用其中两个或多个术语的习惯。特别是 "CPU" 和 "core."
然后 CPU 设计师开始将多个内核放在一个 die/chip 上。所以 "socket" 或 "processor" 或 "chip" 不再是单核,但 "CPU" 与 "core." 仍然是 1 比 1 所以,交换这两个术语仍然是 "ok."
然后 CPU 设计人员开始将多个 "threads"(例如超线程)置于单个内核中。操作系统会将每个超线程呈现为 "CPU",因此 "CPU" 和 "thread" 以及 "core."
之间不再是一一对应的而且,不同的 CPU 系列每个核心的线程数可能不同。
但指的是 "cores" 当一个意思 "CPUs" 仍然存在时。
https://cloud.google.com/compute/docs/cpu-platforms 说:
On Compute Engine, each virtual CPU (vCPU) is implemented as a single hardware multithread on one of the available CPU processors. On Intel Xeon processors, Intel Hyper-Threading Technology supports multiple app threads running on each physical processor core. You configure your Compute Engine VM instances with one or more of these multithreads as vCPUs. The specific size and shape of your VM instance determines the number of its vCPUs.