我有一个支持多线程的可执行文件,我正试图在Google Cloud上执行它。我保留了8个VCPU,我正在使用8个线程执行该作业。假设我得到y的执行时间。现在我保留了16个VCPU,但我只使用8个线程执行作业,并且我得到的执行时间为x。我注意到的是x比y小近15-20%。为什么当我保留更多VCPU但使用更少的线程时,我会获得这种性能优势?
任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
在Google Cloud Platform上,一个虚拟CPU的性能不等于一个物理核心。更珍贵的是,一个虚拟CPU == 1个超线程== 1/2个物理内核。
使用超线程,一个物理内核在操作系统中显示为两个处理器,从而允许每个内核同时调度两个进程。
因此,当您使用16个vCPU时,意味着您具有16个超线程和8个物理内核,而8个vCPU由4个物理内核支持,并具有8个超线程。因此,相对于8个vCPU,这意味着使用16个vCPU时您具有更大的处理能力,这也反映出您所获得的性能优势。
StackOverflow,Blog和Google Group discussions中的本文档是类似主题的很好阅读。