在诸如 Google Cloud Dataflow(或者甚至 Apache Spark 或 Kubernetes 集群等)之类的集群高性能计算框架中,我认为拥有更少的真正 BIG 机器类型而不是许多小型机器类型的性能要高得多,对吧? 例如,拥有 10 个 n1-highcpu-96 而不是说 120 个 n1-highcpu-8 机器类型的性能更高,因为
- cpu 可以使用共享内存,这比网络通信快得多
- 如果单个线程需要访问大量内存以进行单线程操作(例如排序),则它可以访问 BIG 机器中更大的内存,而不是较小的机器
既然价格相同(例如 10 个 n1-highcpu-96 的成本与 120 个 n1-highcpu-8 机器类型相同),为什么会有人选择更小的机器类型?
同样,我有一种预感,对于 n1-highcpu-96 机器类型,我们会占用整个主机,所以我们不需要担心来自另一个谷歌云客户的另一个虚拟机对主机的竞争需求(例如CPU缓存或主板带宽等的争用),对吧?
最后,虽然我不认为 google 计算 VM 正确报告主机系统的“真实”CPU 拓扑,但如果我们选择 n1-highcpu-96 机器类型,报告的 CPU 拓扑可能更接近“真相”,因为据推测 VM 正在用完整个主机,因此报告的 CPU 拓扑更接近真相,因此在该 VM 上运行的任何程序(例如 Java 中的“NUMA”感知选项?)都可能试图占用拓扑的优势有更好的机会做出“正确的决定”。