实现sql server虚拟化所带来的好处是不言而喻的。就sql server 2008来说,hyper-v无疑是其首选的虚拟化平台。不过,要充分发掘hyper-v潜能将sql server虚拟化进行到底还有许多工作要做。本文和大家分享提升sql server虚拟化效能的几点经验。
1、合理分配虚拟处理器
虚拟处理器是影响虚拟机性能的重要因素,对于有四个或更少的cpu核的系统来说,为sql server虚拟机分配虚拟处理器的数量是一项相对简单易行的工作。hyper-v对每个虚拟机支持多达四个虚拟cpu。
(1).分配虚拟处理器
要给虚拟机分配多个虚拟处理器可这样操作:打开hyper-v manager,在虚拟机上单击右键选择“settinqs”,然后单击“processor”。在“number of logical processors”下拉列表框中,选择供虚拟机使用的虚拟处理器的数量。当然,我们最多只能为虚拟机分配与系统中的物理核一样多的虚拟处理器。
(图1)
(2).cpu的量化分配
在sql server虚拟环境中,保证虚拟化宿主机有足够的处理能力来为所有活动的虚拟机提供服务是特别重要的。要计算hyper-v宿主机所需的处理能力,我们可以通过一个公式来计算:
cpu核×cpu速度×cpu利用率=cpu总数
这里的“cpu核” 是要虚拟化的物理内的cpu数量。“cpu速度”是cpu的速度,“cpu利用率”是该cpu的平均利用率。
我们需要针对所有要运行在hyper-v宿主机上的服务器进行这一运算。然后,使用下列公式,把“cpu总数”的数值加在一起,得到所有虚拟机所需的全部cpu的估计值:
“cpu总数” 之和=全部cpu
尽管特定的需求会有变化,笔者的经验是应该保留25%的宿主机处理能力。所以,我们可以使用下列公式来确定宿主机的虚拟化性能:
全部cpu×25%
理想情况下,应该力争在虚拟cpu和物理cpu核之间保持1对1映射的关系。虽然大多数服务器虚拟环境的映射比例要高一些。需要注意的是:向虚拟机增加虚拟cpu不会带来性能方面的线性增长。也就是说,增加第二个虚拟cpu不会让虚拟机性能翻倍,一般会使虚拟cpu性能提升10%到15%。
