我们目前有一个功能非常不足的 VM,并建议迁移到具有更好规格的 Azure VM。问题是,Azure VM 比原始 VM 慢得多,即使它的规格更高。
原始服务器是一个具有 2GB 内存的 2 核 VM,它也是一个 Web 服务器。它运行的是 Microsoft SQL Server Web Edition 2008 R2,并且由于该服务器用于其他用途,我们不得不将 SQL Server 中的最大服务器内存限制为512MB。
新服务器是一个具有 7GB 内存的 4 核 VM,它只是一个数据库服务器。它运行的是 Microsoft SQL Server Standard Edition 2008 R2,我们没有限制 SQL Server 可以使用的内存量。
这是在镜像环境中设置的两台服务器之一,但我正在运行测试的数据库没有镜像。该服务器上的其他数据库目前没有太多流量(实际上,当我运行这些测试时,活动监视器没有显示其他数据库上的活动)。
我确实意识到 Azure VM 的一个问题是硬盘驱动器是一种网络资源,因此这将是减速的根源,但即使 IO 统计数据中显示 0 次物理读取,它仍然更慢。
我在 Azure VM上遵循了此页面上的调整建议,包括对磁盘进行条带化(每个驱动器两个磁盘)并将日志和数据文件放在不同的驱动器上。
我唯一没有做的事情是启用页面压缩、限制数据库的自动增长以及将 SQL 服务器错误日志和跟踪文件目录移动到数据磁盘。我也没有在旧服务器上这样做。
旧服务器没有进行任何调整,日志和数据文件位于未条带化的同一驱动器上。
当前服务器上的数据库是 65 GB(45 条数据和 20 条日志),这对于传输到新服务器来说有点太大了,所以我正在一个较小的数据库上进行测试(6 条数据和 13.5 条日志)
旧服务器上的结果CPU time = 1311 ms, elapsed time = …