我们有一台超负荷运行的服务器,目前在物理硬件上运行单个 SQL Server 2000 实例,每天大约有 40 个不同的应用程序与其交互。去年,RAID 控制器出现故障,我们没有备用控制器,因此 IT 支持人员连夜将其迁移到 VMWare Server 上运行的副本。当它在该服务器上时,由于规格有了很大的改进,所有运行速度都快得多。但是,使用它的最大应用程序偶尔会出现严重错误,而这些错误在物理硬件上从未发生过。
具体来说,每周它会多次切断一批用户的连接,一次切断连接的用户数量从十到数百不等,而且是同时切断。它不会影响任何特定用户、个人电脑或办公室,所有用户都会受到同等影响。
唯一的共同点是应用程序,它是一个使用 ADO 2.8 进行连接的 VB6 应用程序。连接到该 SQL Server 虚拟化实例的其他应用程序似乎没有问题,尽管它们过去(现在)只负责涉及此服务器的一小部分工作。
结果是,在大约两周的时间里,我们喜欢上了它的速度,并讨厌随机的大规模断线(我们从来没有找到原因),最后,我们遗憾地决定恢复使用物理硬件,断线现象也消失了。
现在我们已经到了旧服务器无法处理所有请求的地步,我们打算将所有内容迁移到 2 个或更多其他服务器上。问题在于,它们很有可能必须再次成为虚拟服务器。考虑到上次发生的情况,我正在尝试找出这些大规模断开连接的可能原因。我们运行的是 VMWare ESX,但网络是基于 Novell 的。此外,服务器有一个链接服务器设置,使用已知有问题的 ODBC 驱动程序连接到 Informix 服务器,并且全天都在使用它。
对于原因您有什么想法吗?
答案1
检查错误日志和类似的东西。听起来这可能是一个严重的 I/O 冻结 - 某些东西被交换出去了(或者 VM 开始交换),而这些可能不应该发生,而且在负载下花了很长时间才将其交换回去,以至于一切都变得一团糟。
您的虚拟机正在交换吗?这对任何虚拟化平台的性能来说都是致命的。
答案2
我发现这个修复程序可能是您的问题。您必须在 SQL VM 上执行此操作。网络连接有一个选项,任务卸载,设置导致了问题。以下是描述修复程序的帖子。
[http://forum.wegotserved.com/index.php?/topic/11433-help-my-network-connection-keeps-dropping-out/]
查看帖子Reg,2010 年 1 月 22 日 - 上午 12:08,说:好吧,我可能已经解决了我的网络连接问题。根据我在备份论坛上读到的内容,我禁用了位于网络控制卡高级设置中的“任务卸载”。从那时起(大约一周前),我就能够成功备份我的 Win 7 计算机而不会丢失网络连接。我不知道“任务卸载”是什么意思。
我做了完全相同的事情,并为其中一个 Windows 7 客户端启动了手动备份。备份刚刚顺利完成,没有任何问题,我很高兴 Posted Image
我也不知道他的“任务卸载”到底是什么,所以我在网上查了一下,在维基百科上找到了解释。它似乎是一种将大块数据分解成小块的协议,然后才能通过网络发送…… http://en.wikipedia....segment_offload 也许你们中的一些人比我更了解这一点,因为我对计算机或网络不太了解 发布的图片