虚拟化,或不虚拟化

免责声明:我是一名开发人员,对于设置服务器知之甚less,但在小商店,责任往往会stream失。

我们刚刚有一台运行SQL Server的新服务器,我们正在尝试决定如何为不同的服务器分配最佳的责任。 我们还有一些与Windows Server在同一台服务器上运行的Windows服务。 相比之下,SQL Server比所有的Windows服务组合起来要困难得多,所以我们试图最大限度地分配给它的资源。

我们正在考虑在新服务器上运行两个虚拟环境,一个用于SQL Server,一个用于Windows服务。 这是否给我们带来的好处,就是在没有虚拟化的同一物理服务器上运行所有的东西? 我们的想法是,如果我们可以为Windows服务创build一个资源有限的虚拟环境,那么即使Windows服务的资源需求高峰,大部分资源也可能专用于SQL Server环境。

此时,不能在单独的物理服务器上运行它们。

性能明智,这实际上增加了您的服务器上的负载。 你还在运行某种types的pipe理程序,它占用了CPU / RAM等。另外,Windows完全能够平衡应用程序之间的工作负载。
但是,我同意Jes,它会为您提供SQL环境和其他Windows服务之间的隔离,但是

  • 您的其他服务多久出现一次?
  • “开发”中的任何服务是否定期运行,其中的错误? 还是你的SQL为开发应用程序提供后端?

如果你的服务经常飙升,或者你正在开发“盒子”,那么我会虚拟化,并在性能上受到打击,以换取更高的稳定性。

我想,在这种情况下,你可能会通过虚拟化得到很好的服务。 请记住,我熟悉VMware(我知道还有其他的select)。 使用ESXi,您可以创build多个服务器并分解您的应用程序,这样,如果挂起服务器,所有应用程序的崩溃风险都会降低。 另外,你可以指定你的资源限制(这是你想要的),把基本服务器可以利用的资源数量限制在允许SQL服务器尽可能多的地方。

赫苏斯

我认为只有当你的服务器大部分时间处于闲置状态,并且有时候会有一些中小负载的时候,才会进行虚拟化。 不要虚拟化sql server,除非它是一个用户很less的小型数据库。 如果您的虚拟化产品必须运行完整的主机操作系统,则不会虚拟化关键服务器。 例如域,在完整的主机上的DNS。

当你运行testing环境时虚拟化可能会很好 – 你提到你是一个开发人员。 最后,你的决定。 我相信诸如vmware之类的各种产品确实可以让你在虚拟系统之间进行转换,而不是如此,如果你需要,你可以改变主意。 如果你已经犯了这个错误,而且你的用户已经失控,那就太麻烦了。

我们在5个主机ESX环境中运行约65台虚拟服务器。 虚拟化将为您提供良好的服务。 如果您的应用程序适合虚拟化,那么有很多工具可以帮助您“分析”。

布伦特·奥扎尔(Brent Ozar)把一些非常好的资源放在一起,可以帮助你在旅程中。 查看他关于虚拟化最佳实践的文章。 你会看到硬币两面的链接。

如果您需要明确或帮助,您当然可以随时问我们所有的问题。

有一件事你可能会考虑,特别是如果你运行的是Windows Server 2008,那就是安装Hyper-V,并且只虚拟化“额外的”Windows服务。 您可以在操作系统上安装SQL Server,直接在硬件上获得完整性能,然后在Hyper-V内的隔离虚拟机上运行“轻量级”服务。 这里的缺点是,如果您运行的是Windows Server Standard,则需要多个许可证,否则您将不得不购买Windows Server Enterprise。

仅用于运行第二个虚拟化Windows Server的硬件资源可能会大于在非虚拟化scheme中运行“轻型服务”所需的资源。

运行多个虚拟机总是会导致性能下降,因为它的简单math表明可用资源在x个消费者之间分配。 x的值越大,每个消费者可用的越less。