use*_*372 6 performance cpu-usage sql-server-2012
有没有人遇到过这个?我有一个带有 SQL Server 2012 SP1 的两节点集群,企业企业版安装在 Windows 2012 上。这些是在 VMWare 5.1 上运行的 VM。我注意到 CPU 偶尔会一路飙升至 100% 并持续一段时间。当我查看使用那么多 CPU 的原因时,结果发现是资源监视器。我知道当虚拟内存不足 (KB 968722) 时,SQL Server 2008 存在 CPU 使用率高的问题,但它已在服务包中修复。
有没有人在 SQL Server 2012 SP1 中看到同样的事情?这与 KB 968722 中提到的情况完全相同,但它发生在 SQL Server 2012 上,而不是 SQL Server 2008。
小智 4
我刚刚面临类似的问题。我们的 Windows 团队向我(SQL DBA)报告说,我们有一台只有 2 个核心的高 CPU 服务器(服务器有 10 个核心)。该服务器是 2 节点集群的一部分,并安装了 3 个 SQL 实例。其中一个实例导致了 CPU 问题,令人惊讶的是,导致问题的实例却没有执行任何操作。该实例已安装,但尚未使用,并且仅在 2 个核心上导致了 CPU 问题。使用线程对象性能计数器,我识别了线程 ID,稍后我用它来查询 sys.sysprocesses 表以查找这些线程 ID (KPID)。
SELECT * FROM sysprocesses
WHERE kpid IN (<Thread IDs>)
Run Code Online (Sandbox Code Playgroud)
通过该查询,我确定了 SQL Server 上的会话 ID,它们是后台进程。使用 sp_who,一个会话 ID cmd 是:“RESOURCE MONITOR”,另一个是:“LAZY WRITER”。
我验证了内存,由于此实例是新实例,因此将其配置为最小服务器内存为 1024 mb,最大服务器内存为 1024 mb。我将最大服务器内存设置增加到 2048 mb,问题立即消失。
我知道这不是一个通用的解决方案,由于我的背景,它适用于我的环境,但希望如果其他人也在阅读这个问题,它会有所帮助。