问一些对虚拟化的认知: ESXi 的虚拟化把一个不支持多线程的程序的负载均匀分布在多个处理器上
<p>感觉好牛逼啊</p>
<p>找了一个比较简单无脑的程序测一下单核性能:</p>
<p><code>echo scale=5000; 4*a(1) | bc -l -q</code></p>
<p>用的是 windows 版的二进制的 bc 的 bin(GNU),这个性能不是很好,但是横评比较方便。</p>
<p>结果大概是这样:</p>
<pre><code class="language-php"> 时间 主频
i5 2500k 23.48 3.3
e5 2630 29.5 2.3
i5 6200U 26.76 2.4
e3 1231v3 21.02 3.4
</code></pre>
<p>基本上,耗时的秒数( s) x 主频(GHz) = 80G</p>
<p>所以能拿到的一些基本认知:</p>
<ol>
<li>ESXi 的虚拟化,如果节点运行的是没有给多 CPU 优化的程序,可以通过虚拟化的层面调度到多个 CPU</li>
<li>单个线性程序仍然不能并行,运行的时间和单核主频负相关</li>
<li>衡量虚拟化物理机的 cpu 容量用主频 x 物理核数是合理的</li>
<li>超线程似乎在虚拟化这边用处不大,虚拟化相当于是一个横跨多核的超线程(?)</li>
<li>当然,要跑得快,主频还是得要高</li>
</ol>
<p>想问下这些理解对不对呢?谢谢</p>
收藏(0)
分享
相关标签:
注意:本文归作者所有,未经作者允许,不得转载