标签归档:vmware

虚拟环境下的sql server资源共用


摘要:
在研究虚拟化受欢迎程度的一些原因时,
前面几节指出了虚拟化资源共用,能更好地使用服务器中以前未充分利用的物理资源的能力,以减少部署的物理服务器的总数。
为了讨论的目的,我们可以将共用资源从以下两个方面分析:共用资源优点和共用资源缺点。



共用资源优点

共用资源的优点非常明显:
它能减少了部署和维护物理服务器资源所花费的时间和金钱。
例:如果6台单CPU物理服务器的平均CPU利用率为10%,并且它们都没有并发的CPU使用高峰期,那么我觉得可以将这6台服务器虚拟化,并将它们作为一台带有单个CPU的单台服务器运行 – 逻辑为6×10%= 60%,因此小于具有单个CPU的单个服务器的容量。
我想确保所有6个虚拟服务器都有足够的物理内存和存储系统性能,但最终的好处是能够退出5台物理服务器。
————————————————
通常CPU的使用率,可以很好的反映系统的利用率的重要指标之一。
当内存最大值可以满足6个应用的使用,我们将6个sql server应用分别部署在虚拟机中,可以使物理机达到最高的利用率。 

共用资源缺点

并非所有共用资源都很好。
除非你计划得好,否则你可能会有较差的资源共用。
要了解错误的资源共用情况,
例:
CPU利用率:将6台平均CPU利用率值为10%的服务器合并到单台CPU主机服务器上。这导致主机服务器的平均CPU利用率约为60%。
假如其中两台虚拟服务器的平均CPU利用率从10%跳至40%。结果,总的CPU 需求已经从60%增加到120%。当然,总CPU利用率不能达到120%。
当出现这种情况时,虚拟机管理程序会通过内部调度使总利用率看似达到120%。
例,如果实际上只有100%可用,它如何看起来像CPU使用率为120%?
缺失资源从哪里来?虚拟机管理程序使用资源共享,调度和时间片化等行为来使每个虚拟服务器看起来完全可以访问它始终分配的物理资源。
不过,管理程序正在忙于管理资源请求队列 –
例如,“暂停”虚拟服务器,直到他们获得所需的CPU时间,或者在管理程序等待其他资源时抢占物理内核上的多个请求他们需要变得可用。
此资源共用影响虚拟服务器的性能取决于您使用的虚拟机管理程序的工作方式。
在使用VMware的最坏情况下,如果与少数虚拟CPU一起运行的虚拟服务器一起运行,具有大量虚拟CPU的虚拟服务器可能会受到显着影响; 这是由于VMware使用其共同调度算法来处理CPU调度。
在最糟糕的情况下,可能会在等待足够的物理CPU资源时看到较大的虚拟服务器发生多秒暂停,这不仅表明应该对部署虚拟服务器给予足够重视,还会说明您的知识类型如果你打算使用大量使用的虚拟环境,应该有。
虽然VMware可以如何影响性能的例子是一个极端的例子,但它确实表明了不好的争用会带来不可预知的延迟。
以前,在具有无竞争资源的主机服务器上,您可以有效地假定任何虚拟服务器对资源的请求都可以立即实现,因为所需的资源量始终可用。
但是,当管理程序必须管理争用时,会引入访问资源的时间惩罚。实际上,虚拟服务器对物理资源的“直接”访问不能再被假定。
“直接”是用引号引起的,因为虽然虚拟服务器从不直接为自己分配他们在无人参与的情况下使用的物理资源,但管理程序并不难于查找所需的CPU时间和内存资源; DBA可以知道由虚拟化引起的任何性能损失可能很小,但最重要的是一致的。然而,在竞争环境中,其他虚拟服务器的资源需求现在有能力影响其他虚拟服务器的性能,并且变得不可预测。

避免这些重要的SQL Server虚拟化错误


摘要:
今天的Hyper-V和vSphere等hypervisor可以很容易地虚拟化像SQL Server这样的服务器。
但是,它们还可以很容易地创建性能较差的虚拟化SQL服务器实例。
在本文中,我将介绍在虚拟化SQL Server时可能犯的一些最大的错误。


虚拟化SQL Server时要避免的一些主要错误是:

需使用现代处理器部署虚拟器

需使用拥有多核处理能力的CPU,
因为现代处理支持二级地址转换的功能。
该功能使CPU能够维护虚拟机使用的虚拟内存与虚拟化主机中的物理内存之间的映射。如果这个内存映射任务不是由CPU执行的,那么管理程序必须承担额外的工作,这会降低虚拟机的性能,并使CPU周期远离主机上运行的所有其他虚拟机。SLAT使得该虚拟内存映射能够由CPU以硬件执行,从而提供更好的性能和可扩展性。

不要在虚拟机上部署过多的应用

作为实现最佳性能的一般经验,您应该尝试为您配置的每个虚拟CPU预留一个物理内核。
如果您配置虚拟内核比物理内核多很多,虚拟化软件也能正常使用,只是虚拟机性能会下降。
例:文件服务或小规模数据库工作负载可能不需要太多的处理能力,不会消耗过多的CPU,
但是当我们部署的应用是密集计算型,那么我们配置过多的应用,将会影响主机的处理能力。

虚拟机需配置足够的内存

内存是限制虚拟机运行个数的最大限制因素。
为了部署更多的虚拟机,我们限制虚拟机的内存应用会导致sqlserver这类内存需求量大的应用,性能得不到更大的发挥,
所以在sqlserver虚拟化中,我们需要配置为动态内存模式,使sqlserver性能达到最佳。 

不要使用默认存储配置

就像物理服务器一样,虚拟SQL Server实例的磁盘配置可能会对SQL Server性能产生巨大影响。
虚拟机的默认设置将创建一个具有单个VHD的新VM。
使用这种配置会导致将操作系统文件以及SQL Server数据和日志文件都放在同一个VHD上。
此默认存储配置仅适用于事务率低的小型虚拟SQL Server实例。
具有较高事务处理速率的大多数生产工作负载会立即遇到磁盘争用问题。
更好的做法是将操作系统,数据和日志文件分割到由不同磁盘或SSD驱动器提供服务的独立VHD上。
避免这些常见且容易出错的虚拟化将有助于确保您的虚拟化SQL Server实例能够满足您的性能和可用性目标。

虚拟化SQL Server部署操作指南


摘要:
很久以前很多公司都认为你不能虚拟化SQL Server,因为它太耗费资源。
随着微软和VMWare在VSphere方面的改善,现在虚拟化平台不仅可以满足sqlserver虚拟化,还可以满足所有windows应用的虚拟化操作。
下文将讲述基于虚拟化部署sqlserver的操作指南:


虚拟化SQL Server时的主要考虑因素之一是几乎总是在服务器整合环境中运行虚拟SQL Server实例。
这意味着您的SQL Server虚拟机将与该主机上运行的其他虚拟机共享计算内存,网络和存储资源。确保拥有足够主机资源的最佳方法是创建主机上正在运行的工作负载的性能基准 – 不仅包括您希望虚拟化的SQL Server实例,还包括该主机上运行的所有其他虚拟机。

1.VM动态内存:

对于大多数生产环境,建议启用动态内存。
Microsoft Hyper-V和VMware vSphere都支持动态内存。在Hyper-V中称为动态内存,在vSphere中称为内存膨胀。动态内存支持使虚拟机能够在VM内存压力增加时获得更多的主机内存。
这使得像SQL Server这样的工作负载能够声明额外的内存,允许它动态地增加缓冲池的大小。较大的缓冲池使缓冲池的缓存内容能够满足更多的查询,从而减少所需的物理I / O数量,这有利于主机上运行的所有VM。

2.SQL Server存储:

为虚拟SQL Server实例配置存储时,请务必记住,应用于物理实例的相同规则适用于虚拟SQL Server实例。
这意味着您应该将数据和日志文件放置在单独的虚拟硬盘上,其中每个虚拟硬盘都由不同的物理HDD或SSD提供服务。
tempdb也是如此。最佳做法是确保包含tempdb的虚拟硬盘将其与数据和日志文件分开。

3.足够的网络带宽:

当内存和存储为提供良好的VM性能提供了基础,但如果网络无法满足用户的要求,性能也得不到最大发挥。
需要确保虚拟化主机拥有足够的带宽供客户端使用。