当前位置: 首页 > 技术与资源 > 技术分享 > 正文

SQL Server实例虚拟化的四大技巧

2015-05-06 09:56:52

  控制数据库和相关硬件资源的成本,同时对它们进行必要的改善和扩展已经变得越来越重要。解决这一问题的最佳方法便是虚拟化。当你正在从物理环境迁移至虚拟环境的时候,有四个关键注意事项需要牢记。


  1.在虚拟主机上使用支持SLAT的64位处理器

  对于SQL Server从物理机到虚拟化(P2V),最重要的步骤之一是确保虚拟机使用正确的处理器。虚拟机需要64位处理器,但是并不是所有的64位处理器都支持二级地址转换(SecondLevel Address Translation,SLAT)。SLAT是当前Intel和AMD64位处理器硬件虚拟化的一种形式。Intel称其版本为SLAT ExtendedPage Tables (SLAT扩展页表EPT)。而AMD则称其版本为SLAT NestedPage Tables(嵌套页表NPT)或是RapidVirtualization Indexing (快速虚拟索引RVI)。

  支持SLAT的处理器通过影子分页降低了软件开销,从而变为递归形式,但价格昂贵。SLAT是将客户物理地址转换为系统物理地址的一种机制,它使得客户机完全掌控其页表。SLAT激活了VM入口并且让VM出口失效。支持SLAT的处理器改善了VM性能和稳定性。在任何基于Barcelona架构或是后续架构的AMD处理器以及编号为E5500或更高的Intel处理器上都支持SLAT。


  2.让虚拟CPU和物理处理器内核保持一比一的比率

  为了获得更好的性能,需要对虚拟CPU的总数和物理处理器内核的总数保持一比一的比率。这样做可以确保每个虚拟机(VM)将拥有持续可用的处理能力。


  3.仔细选择虚拟平台

  SQL Server会自动利用服务器上的多个处理器。如果虚拟SQL Server实例要求高度稳定性,那么选择正确的虚拟平台可能就意味着会有显著的性能差异。

  由于Windows Server 2008和2008 R2中的Hyper-V限制了虚拟CPU为四个,因此这些平台上的虚拟SQL Server实例就受到了限制。Windows Server 2012将这一限制提升至可支持64个虚拟CPU。VMware vSphere 5.0则支持32个虚拟CPU,而vSphere 5.1的最新版本支持64个虚拟CPU。使用Windows Server 2012 Hyper-V或是vSphere 5.0或者后续版本来虚拟化SQL Server环境可以支持高密集CPU的操作。


  4.利用动态内存且不过度分配

  服务器是物理的还是虚拟的,不恰当的内存配置会严重影响SQLServer的性能。在SQL Server中,缓冲区包含最近使用的数据页,而程序缓冲则包含最近执行的T-SQL命令。内存缓冲区允许SQL Server从内存中缓存的数据页获取数据和命令。SQL Server会自动管理其内存缓冲区并根据服务器工作负载来对它们进行调整。

  然而,过多的内存分配会对一点有所帮助。在一个虚拟服务器环境中,物理内存限制了在任何给定时间有活跃状态VM的数量。当分配内存给一台虚拟服务器的时候,要确保为每个虚拟SQLServer实例只分配需要的内存量。在一台VM中过度分配内存会夺走其他VM的内存。动态内存为这一内存问题提供了答案。

  为SQL Server利用动态内存,客户机操作系统必须能够识别热插拔RAM。要将动态内存和Hyper-V,操作系统,Windows Server 2008 R2 SP1或后续版本一起使用,就必须安装在Hyper-V主机上。而运行在VM上的客户机操作系统还必须有支持热插拔RAM的功能。以下VM客户机操作系统可以使用热插拔RAM:企业版或数据中心版的Windows Server 2012,Windows Server 2008 R2 SP1,Windows Server 2008 SP2以及Windows Server 2003 R2 SP2。

  要在客户机操作系统中利用热插拔RAM,你需要运行SQL Server 2008 R2的企业版或数据中心版,或是 SQL Server 2012的企业版。SQL Server会检测已添加的内存使用并且可以增加其内存来满足工作负载的需求。

上一篇:用Redis缓存来提升数据库查询性能
下一篇:保障MySQL数据安全的14个方法