我在这里(和其他地方)看到过这个问题,但它并没有真正回答我想要回答的问题。
我已经知道物理上分配给 SQL Server 的内核/CPU 数量。但是,我想知道在高峰时期真正使用了多少个内核(理想情况下,我很想知道百分比、每个内核的利用率 %s 等,但我会尽我所能)。
我们想将此实例迁移到另一台机器上,如果我们可以减少分配的内核数量,这可以为我们释放一些内核许可。但是,我不想“缩小规模”只是为了发现我们的新 SQL 框倒塌了,因为它确实需要那些额外的内核。我们将进行负载测试,但更多信息。我们有围绕这个,更好。
编辑:我最终只是设置了一些仪表板软件,它可以轻松查看/打破 CPU 使用情况(可以使用 PerfMon)。
但是,我想知道在高峰期,真正使用了多少个内核
这并不是您真正想要确定新服务器硬件大小的方式。您想查看服务器的等待统计信息。
如果您想免费执行此操作,请前往firstresponderkit.org
并获取sp_BlitzFirst
。它是由我工作的公司编写的免费工具,可帮助您找出 SQL Server 瓶颈。
有几种运行它的方法会对您有所帮助:
EXEC master.dbo.sp_BlitzFirst @SinceStartup = 1;
Run Code Online (Sandbox Code Playgroud)
自启动以来,这将为您提供一大堆服务器指标。通常,服务器运行的时间越长,这些指标就越有价值。
看看你在这里等待的前 5-10 名;结果可能会让你大吃一惊。有很多关于不同等待排队的资源的文章,所以搜索是你的朋友。
如果没有等待甚至接近服务器的正常运行时间(并且您没有清除等待统计信息),那么恭喜您,您的服务器很无聊。
您还可以运行:
EXEC master.dbo.sp_BlitzFirst @Seconds = 30, @ExpertMode = 1;
如果您想在一定时间内采集服务器指标样本。
我最近使用相同的(免费!)工具为 Google(您也可以免费下载和阅读)写了一份关于此的白皮书。虽然它面向在云中调整实例大小的人,但它可以应用于任何地方的物理或虚拟服务器。
希望这可以帮助!