情况 我们计划将整个(生产)DWH迁移到新的集群。其中一个要求是新集群至少与当前集群一样快。这要求使用当前集群作为基准进行性能测试。
在进行这些测试时,我们希望两种环境在行为方面几乎完全相同。
我已经可以从实时生产群集克隆用户行为并在新群集上执行它。让缓存得以解决。
抓住 由于我们要将这个新集群与实时生产环境进行比较,因此我无法简单地清除两个服务器的缓存。清除新集群的缓存是可能的,因为它还没有生产。但是,我不会清除实时生产群集的缓存,因为它仍在使用,并将对性能产生重大影响。
我想知道是否有可能克隆/模仿两个集群之间的缓存。
我也会就此问题采取完全不同的方法。
答案 0 :(得分:0)
我认为你这是错误的方式,这就是原因。我假设如下:
如果不是这样,那么我不明白为什么你要进行测试,因为它不会比较苹果和苹果。话虽如此,即使您可以镜像计划缓存,我仍然看不到测试如何相等。你可以创建一个全新的查询,用于性能测试,并在两个实例上运行它来比较它们的性能(它会使用一个新的计划),但这是一个很大的问题...你不会开始所有来自生产实例的用户,因此您的基线查询将争用资源。除非您的生产服务器具有相同的镜像(没有用户使用),否则我不会看到您将如何进行无偏见的测试。
说到这一切,大多数情况下你会升级到更快,更好的硬件,这样可以感觉更安全,假设配置相同,它会更快,或者至少不会更慢。此外,Dave Pinal,Paul White,Brent Ozar,Paul Randall,Aaron Bertrand等还有大量的性能调优博客......从最佳服务器设置到查询调优。仅此一点,可能是性能上的日夜差异以及正确的数据库维护(修复索引碎片,修复数百或数千个仅使用一次的计划查询,一般修复索引等)