【发布时间】:2017-03-16 14:44:54
【问题描述】:
有人有从 SQL Server 2008R2 升级到 2016 的经验吗?
我们的系统在 2008R2 上运行良好,但升级到 2016 后,我们遇到了高 tempdb 争用。
我们看到 PAGELATCH_SH 上的大量阻塞等待 tempdb 对象。 PLE 为 99.98%。 MAXDOP 为 6(机器有 8 个核心/NUMA)。 MAXDOP 阈值为 50。
随机查询的运行时间超过 30 秒,但是当我尝试从 SSMS 运行相同的查询时,它们会在亚秒内运行,这证实了阻塞是问题所在。我们目前使用 16 个临时文件,今晚增加到 34 个。
我们今天发现 tempdb 日志的 io_stall_write_ms 超过 200,000 毫秒,我们今晚将其移至 SAN,但我不相信它可以解释页面闩锁的长时间等待。
我的想法已经走到了尽头。有人有什么建议吗?
【问题讨论】:
-
这是在同一硬件上进行就地升级,还是您对不同硬件进行了迁移升级?
-
We see a large amount of blocking on PAGELATCH_SH waits for tempdb objects此陈述不正确,这并不表示 tempdb 争用 -
-
我们同时迁移到了新硬件。我们一直在审查硬件配置,今晚将转向裸机。
-
是的,所有 tempdb 文件的大小都相同。同意我们超出了推荐的 8 个文件。我们从 8 个文件开始,并增加了 4 个文件,今晚增加了 8 个文件。
标签: sql-server upgrade sql-server-performance