当前在具有 128 GB RAM 和 1TB 内部 SCSI 驱动器的 Intel 双 8 核处理器服务器上运行 SQL Server 2008 R2 SP1,在 64 位 Windows Server 2008 R2 Enterprise 上运行。
自 2011 年以来,服务器一直在运行我们的数据仓库和分析服务包。此服务器和 SQL 实例不用于 OLTP。
突然并且没有警告,所有调用构建数据仓库表(使用存储过程)的 SSIS 包的作业都因“通信缓冲区死锁”错误而失败。每次运行进程时,包内产生错误的 SP 都不同。
但是,如果 SQL Server Profiler 在启动作业时正在运行以进行跟踪,则作业将运行良好。
这最初发生在 6 月份我们的开发服务器(相同的配置)上。与 Microsoft 联系后发现了磁盘 I/O 问题,并建议设置 MaxDOP = 8,这已经缓解了死锁问题,但引入了一个问题,即进程在随机时间间隔内可能需要长达 3 倍的时间。
这刚刚发生在我们的生产服务器上。MaxDOP 当前设置为零。在过去的一个月里,操作系统、SQL Server 或 SSIS 包没有任何变化。这些作业在 9 月 5 日一夜之间运行良好,但在昨晚(9 月 6 日)一夜之间因错误而失败,并且在任何重试时都继续失败。
任何一项作业在失败之前运行的时间长度并不一致,作业之间也没有一致性。以前需要 2 分钟才能完成的作业将在几秒钟内失败,而通常需要 2 小时的作业可能会在失败前 30 到 90 分钟的任何时间运行。