要建设稳定运行的虚拟化SQL Server系统,关键是确保虚拟化管理软件配置能提供数据库所需的资源。SQL Server是CPU密集型技术,因此支撑它的虚拟机需要能获得充足的处理器资源,同时不能引起与其它虚拟机的资源争用。 SQL Server虚拟化往往比较复杂,因为有很多因素要考虑,包括控制CPU分配和资源利用率,还要配置SQL Server虚拟机的内容来保障可扩展性,避免运行处理任务时内存不足带来问题。微软公司的Hyper-V虚拟化软件提供了帮助满足这些工作需求的工具,至少可以满足组织在使用该技术时需要的配置工作。 首先,Hyper-V包含许多不同的设置项,可以用来控制每个虚拟机CPU资源分配,如图1所示: 在Hyper-V中设置控制虚拟机资源分配 图1:在Hyper-V中设置控制虚拟机资源分配 默认情况下,Hyper-V管理器只给虚拟机分配一个处理器,所以要给SQL Server虚拟机提供合适数量的CPU,要考虑该服务器未来规划负载以及SQL Server授权情况。还有,为了确保虚拟SQL Server获得足够的CPU资源,你可以使用“虚拟机保护”设置选项,选择保护特定虚拟机可用资源的百分比。 有多种方法可以避免虚拟SQL Server产生CPU资源竞争。例如,你可以调整“虚拟机限制”和“相对权重”设置(在资源控制面板中),控制SQL Server虚拟机的CPU资源消耗情况。另一种方案是对相邻虚拟机应用保护,避免其它虚拟机过度消耗资源。不过,这种方案也有点麻烦,因为虚拟机可能会被迁移到其它主机。 此外,Windows Server 2016引入了托管资源保护机制,如果虚拟机占用太多现有硬件资源,该机制会强制停止。它能对CPU消耗进行主机级别的监控,如果虚拟机开始消耗过多CPU资源,该功能会自动调节处理器资源。 想要使用虚拟化SQL Server的IT团队还应该关注虚拟机的内存配置,图2中Hyper-V提供了内存配置选项。 在Hyper-V中设置控制虚拟机资源分配 图2:Hyper-V针对虚拟机的内存配置选项 微软的hypervisor提供了两种方式使用内容:动态内存分配和静态配置。动态内存是Hyper-V的特色,专为提升系统物理内存使用效率而设计,它把内存设计为共享资源,可以在不同的虚拟机之间按需进行再分配。然而,该功能对SQL Server来说很危险,因为SQL Server虚拟机通常会尝试使用尽可能多的内存。因此,最好对虚拟SQL Server静态分配内存。 在使用非统一内存访问架构(NUMA)系统的时候,对SQL Server的设置有点特殊。NUMA设计是为了实现更好的可扩展性,它把不同组的处理器和系统内存片段整合到一起(一般称为NUMA节点)。 在Hyper-V中设置控制虚拟机资源分配 图3:Hyper-V对基于NUMA系统的配置选项 处理器可以访问分配给所有NUMA节点的内存,但是与CPU同一节点下的本地内存肯定比访问不同节点的远程内存更快一些。因此,SQL Server虚拟机的NUMA节点和套接字虚拟拓扑应该与物理硬件拓扑有对应关系。 如图3所示,Hyper-V的NUMA设置在Hyper-V管理器Processor处理器菜单下的子菜单中。你可以使用它们调整拓扑或者手工设置虚拟NUMA节点的处理器数量、内存数量,设置服务器单个套接字支持的节点数量。 在Hyper-V虚拟机中运行SQL Server的另一项最佳实践是使用微软公司的第二代虚拟机,它的启动速度很快,整体功能表现也比第一代产品更好。不过,因为SQL Server的性能与存储I/O关系很大,因此最重要的是确保虚拟硬盘的底层存储提供的IOPS要满足数据库需求。 另一种考虑因素是两种高可用形式之间可能存在冲突。在与Windows Failover集群结合时,Hyper-V虚拟机可以在虚拟机级别实现更好的可用性。但是,SQL Server还支持独立于虚拟机管理程序的高可用性。如果你选择使用SQL Server的高可用功能(它会设置所谓的访客集群),需要设置反关联规则组织不同的SQL Server虚拟机。这些虚拟机是单个访客集群的组成部分,都来自于通用物理主机。否则,主机级别的故障会破坏访客集群的可靠性。 在虚拟机上运行SQL Server可以说是在数据库资源需求和系统其它部分资源需求之间“走钢丝”。实施本文描述的最佳实践可以帮助你保持虚拟SQL Server系统平稳运行。

TechTarget中国原创内容,原文链接: http://www.searchdatabase.com.cn/showcontent_94267.htm
© TechTarget中国:http://www.techtarget.com.cn

如何在微软Hyper-V下发挥SQL Server最大功效的更多相关文章

  1. 在Windows2008下安装SQL Server 2005无法启动服务的解决办法

    在Windows2012下安装SQL Server 2005无法启动服务的解决办法 1.正常安装任一版本的SQL Server 2005. 2.安装到SqlServer服务的时候提示启动服务失败  此 ...

  2. 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 撰写经历(Experience) 特约稿正文(Content-body) 第一部分:生活中资源 ...

  3. 大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...

  4. 招聘 微软全球技术支持中心 sql server组

    微软亚太区全球技术支持中心(APGC CSS)是微软为个人用户.开发者.IT 专业人员到合作伙伴和企业级合作伙伴提供全方位.多元化的服务和技术支持的部门.一个优秀的SQL Server技术支持工程师应 ...

  5. (转)大数据时代下的SQL Server第三方负载均衡方案----Moebius测试

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...

  6. 大数据量下的SQL Server数据库自身优化

    原文: http://www.d1net.com/bigdata/news/284983.html 1.1:增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情 ...

  7. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  8. 浅析Win8/8.1下安装SQL Server 2005 出现服务项无法正常启动解决方案

    如何才能在微软最新的Windows8/Windows 8.1下正常使用SQL Server 2005套件呢?下面就简单介绍利用文件替换法,解决其服务项无法正常启动的临时方案.当然还是建议使用SQL S ...

  9. ASP .Net Core 在 CentOS8 ARM 下连接 SQL Server 2008 R2(Hypervisor)

    本文主要记录在 ARM 系统下无法连接SQL Server 2008 R2 的解决过程. 解决方案是使用 ODBC 的方式连接数据库,进行操作. 手上有公司的华为鲲鹏云计算 ARM 架构的 CentO ...

随机推荐

  1. CodeForces 719A Vitya in the Countryside 思维题

    题目大意:月亮从0到15,15下面是0.循环往复.给出n个数字,如果下一个数字大于第n个数字输出UP,小于输出DOWN,无法确定输出-1. 题目思路:给出0则一定是UP,给出15一定是DOWN,给出其 ...

  2. hdu 3342 Legal or Not(拓扑排序)

    Legal or Not Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total ...

  3. MySQL常用命令总结2

    USE db_name; //使用(打开)数据库 SELECT DATABASE(); //查看当前打开的数据库 CREATE TABLE tb_name( column_name data_type ...

  4. Unity中www的基本应用

    Unity的www主要支持HTTP中的GET和POST方式,GET方式会将请求附加到URL后,POST方式则是通过FORM的形式提交. 以下为Unity客户端的信息: using UnityEngin ...

  5. Ubuntu 14.04 待机死机问题原来是自己改了这个配置

    使用专有驱动没问题.使用开源驱动就会死机.驱动还是厂商的好@@

  6. Python之路【第二篇】:Python基础(二)

    windows的换行符:\n\r linux的换行符:\n 文件的数据处理: r 以只读模式打开文件(默认模式)w 以只写模式打开文件a 以追加模式打开文件 r+b 以读写模式打开文件(以读/写方式打 ...

  7. CSS代码格式化工具

    CSS代码格式化工具 http://tool.lanrentuku.com/cssformat/ 可实现CSS代码格式化和CSS在线压缩 请将CSS代码复制到下面表单中:    

  8. navicat 导出mysql表结构

    选中需要导出表结构的数据库,右键,在显示的菜单中选择“数据传输”这一项 ,在弹出窗口中“数据传输”单击选择“高级”一项,在“高级”中把“记录选项”中的勾去掉,在做一些设置,最后导出表数据就不会导出记录 ...

  9. String转float

    float mTotalhour = Float.parseFloat(mTotalHourEt.getText().toString().trim());

  10. 关于Jsp页面在ww:iterator 标签里面判断的写法是可以直接写数组里面的变量的

    因为上面已经遍历了,所以可以直接写变量名