最佳实践 - VMWare 中的 SQL 2012 和 IIS

最佳实践 - VMWare 中的 SQL 2012 和 IIS

我们对 VMWare 还很陌生,想了解一下我们的环境。我们有一个 VMWare 集群,其中一台主机上有:

VM#1:MS Windows 2008 R2 Enterprise 和 SQL Server 2012
VM#2:MS Windows 2008 R2 Standard 和 IIS

IIS asp.net 应用程序直接与 SQL Server 通信。几个月前,我们在物理服务器上有类似的环境,最近才转移到虚拟化环境。

至于设置,我们没有调整任何虚拟机资源参数——所有参数均设置为标准并且一切正常。

观察到的情况是虚拟机似乎运行缓慢,响应出现延迟。当然,这不如旧的物理环境快,但我想知道:

*在同一台主机上运行 SQL 服务器和 IIS 服务器是个好主意吗?它们是主机上仅有的两个虚拟机。主机是一台新的 Dell R620,内存为 192 GB。

  • 当看起来不存在任何争用时,更改任何 CPU 或内存预留是否有意义

  • 有没有办法让虚拟机保持假脱机状态以消除延迟?

这是一个全新的、干净的香草安装。

你怎么看?

答案1

假设没有资源过度承诺,​​预订不会给你带来很多好处。

你需要追踪什么经济放缓的原因是。

观察到的情况是,虚拟机似乎运行缓慢,并且响应出现滞后。

您需要做的是找出导致这种情况的资源。此外,“spool down”实际上并不是对任何事情的描述。您需要深入研究性能监控,看看是什么导致了这种情况。

*在同一台主机上运行 SQL 服务器和 IIS 服务器是个好主意吗?它们是主机上仅有的两个虚拟机。主机是一台新的 Dell R620,内存为 192 GB。

如果您有两个虚拟机,它们进行大量通信并生成大量 I/O,那么最好将它们放在同一台主机上,但使用不同的卷/LUN。这样做将允许两者之间的所有网络流量停留在 vSwitch 上,而不会触及您的物理网络基础架构。这样可以实现相当不错的性能改进。

您应该将它们保存在单独的 LUN 上,因为您不希望出现磁盘争用。


TL;DR - 分析您的应用。找出瓶颈所在。只有存在资源争用时,预留才有意义。设置预留作为诊断措施毫无意义,您需要自己进行诊断第一的然后担心它是否合适。

答案2

根据VMWare 社区论坛上的此主题...

为了消除延迟,请更改 CPU 预留:

  1. 右键单击您的虚拟机并选择“编辑设置”
  2. 单击资源选项卡
  3. 单击 CPU,在右侧输入几 MHz 作为预留
  4. 单击“确定”。

一般来说,您不需要更改内存预留。

相关内容