虚拟化SQL Server需要避免的事情

云计算 虚拟化
虚拟化意味着你必须在你和磁盘上的数据之间抽象出新的一层(即hypervisor)。我通常只是说“你和你的数据之间有多层美味蛋糕。”麻烦的是,你需要知道是哪一层造成你的性能问题。是主机?还是客户机?因此,你需要依靠以虚拟机性能计数器来获得所发生的事情的全貌。

没有性能预期

虚拟化不能不考虑可接受的性能水平。VMware表示,他们的虚拟化技术可以让你实现当前部署在物理服务器上的SQL Server的98%的性能。请注意,这并不意味着你迁移到 VMware就获得更好的性能。很多时候,你升级到较新的硬件会得到更好的性能。但是,如果你不知道当前的性能SLA,那么你将不会有任何概念。当你做性能基线,不要把查询的持续时间作为唯一的指标。你还需要测量查询的逻辑I/O和CPU成本。如果你要尝试尽可能多地挤出你的主机的性能,你会首先希望能够迅速确定那些最消耗CPU和内存的查询,并调整它们。

磁盘配置

这里有两个主要选项:原始设备映射(RDM)和虚拟机磁盘格式(VMDK)。哪一个是你想要使用的,何时使用?真正的区别在于功能,或者架构。VMware已经发布一个方案清单,列举了RDM何时是更好的解决方案。在开始部署无法满足一些关键的业务需求的解决方案之前,你需要知道这些差异。您还应该了解RAID级别之间的差异,哪些最适合SQL Server。***,请记住,虚拟化是一个理想的工具的原因之一,是因为共享存储方面允许服务器根据需要在主机之间轻松移动。这也是很大的弱点,因为它允许“吵闹的邻居”消耗资源,可能导致使用相同磁盘的其他服务器“疼痛”。这是布置你的磁盘配置选项时候需要上心的。

自动精简配置

自动精简配置是坏主意之一,听起来不错,往往会产生与自己动手做牙医相同的结果。它的初衷足够无辜:有人想节省空间,只在需要时分配存储空间。最终的结果是,没有人保持高效的跟踪虚拟机已自动精简配置什么,最终文件大小疯狂增长,直到填满所有可用的存储,使所有活动停止。对于存储磁盘变满问题的共同建议,是把客户机迁移到新的主机,在那里它们会适应。伟大的建议,但我猜想你没有足够的空间来实施,否则,你也不会使用自动精简配置了。

我帮助DBA理解精简配置,通过将它与SQL Server的自动增长比较。如果你有相当的规模的数据文件(例如500GB),它仍然在以10%的速度增长,那么下一次增长会消耗50GB磁盘空间不会发出警告。如果你有少于50GB的可用磁盘空间,那么驱动器将被完全填满。这与自动精简配置发生的事情相同。大多数优秀的高级数据库管理员采取措施,尽量减少会填满磁盘的自动增长事件,并引起最终用户头痛的机会。如果你发现自己使用自动精简配置以***限度地提高你的空间利用率,那么你将需要采取额外的步骤来管理你的环境,以确保没有任何突发的增长事件。

自建主机

在IT部门工作往往能提供给我们很多的机会回收零部件,适用于各种用途。可能是一个显示器,一个电源,或额外的 RAM,可以被重新部署。因此,我们养成让所购买的硬件获得最长的使用寿命的习惯。将有一个时期,你看着你的服务器机房想着“嘿!我有足够的零件在这里建立一个真正大的、健壮的服务器,可成为一个虚拟机的主机!”

不要成为那个人。不要试图建立一个主机,尤其是主机产品的零件已接近生命的尽头。如果你的设备已经落后于时代,想象18个月之内它会落后更远。如果你喜欢便宜和使用剩余备件,请用在开发主机,并准备花费额外的时间来维护。如果你将要虚拟化,你要为你的主机购买新的硬件。新硬件应该比当前已部署为物理设备的服务器更强大。这里还有许可的考虑。购买新的硬件可能需要较少的许可,整体上便宜更加便宜。

信任O/S计数器

虚拟化意味着你必须在你和磁盘上的数据之间抽象出新的一层(即hypervisor)。我通常只是说“你和你的数据之间有多层美味蛋糕。”麻烦的是,你需要知道是哪一层造成你的性能问题。是主机?还是客户机?因此,你需要依靠以虚拟机性能计数器来获得所发生的事情的全貌。

数据库管理员通常知道他们的服务器被虚拟化,但抱怨说,他们没有洞察到VMware性能计数器。如果没有这种洞察力,数据库管理员不知道哪里是真正的瓶颈所在。一个常见的例子是关于CPU的压力。当SQL Server显示内部的CPU压力的症状,DBA可能会开始采取措施来纠正问题。然而,内部压力可能是一个客户机问题造成的,或者甚至是主机。

容量规划

我们有适当的容量规划的想法。从理论上讲,这是一个绝妙的主意。但在现实中,它往往是一个徒劳的努力。比如说“在过去六个月中,我们已经看到x%的增长,我们预计未来六个月内是在Y。”现实情况是,明天的业务可能决定需要能够下载1000个不下于1GB的文件。换句话说,业务需求会发生变化,而且往往没有预警。正如我们在谈负载均衡时提到的,你也需要为增长留出适当的容量规划。否则,你会在很短的时间内就遇到麻烦。

一次用完所有资源

记住我说过要避免一次性过度提交你所有的资源,这是负载均衡和了解你的工作负载的关键。你不能开拓出十几个客户机用来作为运行生产数据库的服务器,并预期它们的性能将保持在VMware所说的98%。负载均衡的概念可能比科学更加艺术。一些意外事件引发的多米诺骨牌效应可能扰乱你的预期部署,需要一定的时间才能完全恢复。所以你必须权衡你的工作负载,否则你会发现,超额分配的资源是过度投放。只有均衡是不够的,你必须为增长和使用留下空间,使得如果一个事件发生,你能渡过难关,不会破坏许多其他的系统。

内存/CPU的超额分配

 

超额分配你的内存和CPU资源的想法很自然。你不希望内存和 CPU引发性能问题。当我审查客户的配置,我告诉他们为默认CPU资源上限的1.5:1的比例(就是说,16个逻辑核心意味着你可以以分配24个CPU为基准,并根据根据工作负载需要和负载均衡的允许上下调整)。对于内存设置,我遵从VMware的性能***实践指南概括指出的“......避免过度分配内存。”换句话说,我对内存超额分配比CPU的超额分配更保守。超额分配资源很容易为你添加更多的客户机到主机时候带来惊喜。下一次当你将一个新的客户机添加到主机,在这上面花几分钟的时间,这几分钟可能会节省你以后几个小时的头痛时间。

责任编辑:老门
相关推荐

2011-05-11 10:34:41

SQL Server虚拟化

2013-02-26 14:07:52

SQL Server虚拟化

2012-05-31 14:05:31

虚拟化

2011-02-25 16:36:59

SQL ServerBI虚拟化

2010-07-20 11:31:25

SQL Server避

2011-09-05 10:01:41

虚拟化

2010-07-26 13:47:11

SQL Server

2011-07-07 09:40:05

SQL Server虚拟化数据库

2019-08-22 08:53:57

IT现代化数字化转型

2012-04-13 16:26:49

虚拟化云计算云停滞

2011-11-01 09:44:45

SQL Server 服务器虚拟化

2013-08-02 09:47:04

存储虚拟化虚拟化

2010-07-06 09:44:51

SQL Server数

2010-04-20 14:44:34

桌面虚拟化

2020-08-31 10:30:05

数字化转型疫情CIO

2010-07-02 11:10:56

SQL Server

2013-09-29 10:36:08

VMware虚拟化

2013-06-25 09:18:01

大数据数据虚拟化Hadoop

2013-06-27 10:46:33

大数据虚拟化

2016-02-15 10:28:07

虚拟化
点赞
收藏

51CTO技术栈公众号