发现:
在性能测试和稳定性测试的过程中,我们发现了一些有意思的现象。在任务管理器中的性能监视窗口中,无论将虚拟的CPU设置为1个或者4个,运行的测试无论是50并发还是240并发,虚拟服务器CPU的占用总是保持在一个相对很高的水平上。这个现象在之前做过的物理服务器上没有出现过。也就是说,如果一套服务器系统,它的性能如果能够支撑200并发的话,当测试压力只有50的时候,其系统占用不会是在很高的位置。
     这与VMware虚拟机处理性能的调度截然不同,VMware曾经公布过一个虚拟机上开展SQL2000的性能测试报告,按照该报告,VMware虚拟机的性能随着虚拟CPU的增长而线性增长。
由此我们推测,Hyper-V在调度CPU资源时,并不是按照虚拟机的虚拟CPU数量进行调度。实际上我们测试过给同一个虚拟机分配一个虚拟CPU和四个虚拟CPU,虚拟机的性能差异很小,基本上可以视为SQL 2005对不同数量处理器支持的性能差异。 Hyper-V对CPU资源的调度,使同一台物理机上的虚拟机之间可以实现动态平衡,有效利用处理器资源。但是这样做的弊端将是虚拟机之间的隔离需要部署时很好的规划,否则一、两个虚拟机出现死锁这样的宕机,很可能危急整个物理机上虚拟机稳定性。(图10)。
 
图10 不同压力各系统资源对照