首页 > 解决方案 > 在 Google Cloud 上订阅不足时减少执行时间

问题描述

我有一个支持多线程的可执行文件,我正在尝试在 Google Cloud 上执行它。我保留了 8 个 VCPU,并且正在使用 8 个线程执行该作业。假设我的执行时间为 y。现在我保留了 16 个 VCPU,但我只使用 8 个线程执行作业,并且执行时间为 x。我注意到的是 x 几乎比 y 少 15-20%。当我保留更多 VCPU 但使用更少的线程时,为什么会获得这种性能优势?

任何帮助将不胜感激。谢谢。

标签: multithreadinggoogle-cloud-platform

解决方案


在 Google Cloud Platform 上,一个虚拟 CPU 的性能并不等于一个物理内核。更珍贵的是,一个虚拟 CPU == 1 个超线程 == 1/2 个物理内核。

使用超线程,一个物理内核在操作系统中表现为两个处理器,允许每个内核同时调度两个进程。

因此,当您使用 16 个 vCPU 时,意味着您有 16 个超线程和 8 个物理内核,而 8 个 vCPU 由 4 个物理内核支持并具有 8 个超线程。因此,这意味着您在使用 16 个 vCPU 时拥有比 8 个 vCPU 更多的处理能力,这也反映了您获得的性能优势。

StackOverflowBlogGoogle Group 讨论中的此文档是类似主题的好读物。


推荐阅读