我们一直在使用专用服务器(单四核,6 GB RAM),并且正在迁移到新的专用服务器(2x六核,32 GB RAM)。两者都是Windows Server 2008,SQL Server2008。新服务器的性能比旧的慢服务器稍差。
在测试中,我们的ASP.NET应用程序的运行速度降低了10%-20%。使用STATISTICS IO和STATISTICS TIME运行单个昂贵的查询将显示在新服务器上的运行时间增加了10-20%。SQL查询配置文件在昂贵的查询中显示较高的CPU使用率。
新服务器上的任务管理器显示sqlserver.exe正在消耗22 GB的RAM,但CPU值始终保持很低。
我已经更新了所有统计信息,重建或重新组织了索引等。鉴于我已完成的测试量,执行计划此时应存储在新服务器上。如果有任何缺失的索引(我认为没有),它们会同等地影响新旧服务器。新的具有与旧的相同数据的还原备份。
我曾希望新服务器上的性能会更好,但是负载更值得关注。如果旧服务器即使在负载下也表现更好,那么当新的,性能稍差的服务器必须承担该负载时会发生什么?
我还能在这里错过什么?
编辑:MAXDOP设置为6。
旧服务器在相同的物理驱动器(RAID 10)上具有操作系统,数据库和tempdb。总共4个15k 3 Gb / s 3.5英寸SAS。新服务器具有三个驱动器集:RAID 1上的OS,RAID 10上的数据库,RAID 5上的tempdb。总共9个15K 6 Gb / s 2.5英寸SAS。
旧服务器具有1 x Intel Xeon E5620 2.40 GHz四核8线程(w H / T)。新服务器具有2个Intel Xeon E5-2640 2.5 GHz六核12线程(w H / T)。
编辑2:这是最终分析:
电源计划处于平衡状态,而不是高性能。切换了。
Tempdb位于RAID 5而非RAID 10上。添加了另一个HD,以创建两个物理上不同的RAID 10配置,一个用于tempdb,另一个用于其他所有东西。
从病毒扫描中排除了与SQL相关的文件(mdf,ldf,ndf,bak)。
移至新服务器后,重建所有索引。它们非常分散-可能是备份,复制,还原的结果?
我意识到处理器的跳跃并不大。查询执行的速度不会更快,但是有了更多的处理器,更多的内核,更多的RAM,我们将具有更大的可扩展性。