在VMWare ESXi中优化MSSQL 2008服务器

我通常在专用服务器上运行我的MSSQL服务器,但是我们已经采用了在VMWare ESXi 4主机中运行SQL Server的客户端,坦率地说,它运行得像垃圾一样。

我们已经确定,数据库本身不是问题所在。 我们将相同的数据库部署到比VMWare guest更低规格的专用服务器上,并且运行速度至less提高了5倍。

服务器是:

Dual Quad Core Xeon 2Ghz (I don't know the exact model) 24Gb RAM 4x 300Gb SAS (RAID 10) ESXi 4 

主持人是:

 4x vCPUs 3Gb RAM 80Gb disk space Server 2008 Standard SQL Server 2008 Workgroup 

主机上的其他虚拟机stream量非常低。 第二个DC(几乎没有使用),一个低stream量的Web服务器和一个低容量的terminal服务器(在任何给定时间约5个用户)以及其他几个其他客人。

我很久以前就读过一篇关于在Windows和SQL服务器中设置一大堆Paging设置来优化它的文章,但是我找不到它:(

是否有任何提示或窍门可以提供任何人来提高SQL性能?

好的,这里有一些提示,没有特别的performance – 受益的顺序;

  • 确保虚拟机在7型虚拟硬件上运行(在虚拟机总结中说)
  • 确保所有的虚拟机磁盘都不胖
  • 升级到版本4更新1
  • 确保所有虚拟机都安装了最新的vmtools
  • 对于W2K8虚拟机使用“LSI SAS”磁盘控制器和vmxnet3网卡
  • 确保您已经在OS中开启了交换
  • 禁用屏幕保护程序
  • 将video帧缓冲区设置为4MB或更less
  • 清除所有虚拟机中的虚拟硬件,如软盘,串口,并行等。
  • 正如Zypher所说的,ESX不会给VM提供任何 vCPU时间,直到所有分配的vCPU都可用为止 – 尝试将数量从4减less到3或2(不要担心提供VM 3,5或7个vCPU,感觉奇怪,但工作得很好),也看看你的其他虚拟机,如果他们不需要他们的vCPU减less – 这台机器没有真正的核心
  • 确保在BIOS中启用了硬件虚拟化,并且所有电源pipe理选项都根据性能进行了调整
  • 看看虚拟机的“份额”,考虑根据其重要性和当前行为增加和/或降低各种份额价值/优先级 – 也认真考虑您的预订选项 – 这些选项可以在竞争对手中产生巨大影响。
  • 那么很明显看看SQL虚拟机的性能数据,特别是可用的内存,%RDY和磁盘队列长度/等待
  • 考虑将磁盘添加到arrays和/或向此VM提供专用的vmdk /数据存储/磁盘

如果我想好的话,我会增加更多,祝你好运。

去获得vSphere远程CLI (去驱动程序和工具 – >自动化工具和SDK)

将设置login到框中并使用esx top查看瓶颈位置( 信息链接 )后,

由于您正在运行4个vCPU,请注意esxtop中处理器屏幕的%RDY列。 这是机器等待一次访问4个CPU的时间。 取决于哪个VMWare SE与2-5以上的任何东西交谈都是坏的。

您也可以查看VIC的“性能”标签下的图表,看看发生了什么,仔细查看内存图,观察高内存的气球。

也许虚拟化只是一个performance不佳的数据库的标志。 虽然数据库性能在虚拟化时一直非常麻烦,但如果stream量不是很高,那么没有理由将数据保存在RAM中,从而无法合理执行数据库。 我会检查一般SQL性能,看看它是否使用3GB的RAM分配(你可以给它更多?),以及检查像索引,碎片数据库文件,特别是可以从重写受益的坏的查询的东西或使用额外的索引等

正如其他人所说,一个只有8个核心的盒子上的4vCPU是很多的。 您可能会遇到很多处理器调度争用。 我会把它放到一两个,看看performance是否改善,然后从那里走。