我有一台安装了 SQL Server 2014 Express SP2 的服务器 2012R2。有一些应用程序和数据库,但没有太大。数据库很小,加起来大约 100MB。
在某个时刻(不是从一开始)SQL Server 进程开始显示持续的高 CPU 使用率。通常 CPU 负载约为 15-20%。它显示了一个周期图片,其中一分钟负载为 15-20%,而周期之间的几秒负载为 0%。有时 SLQ 服务器会停止这样做(无论他做什么......)大约 2 分钟,然后以 10-20 秒的 >95% 负载和“通常”15-20% 之后再次启动......
当然,它会影响用户的性能。
我已经尽我所能调查了(会话报告、查询报告、分析器、内存分配 SP ......),但我没有发现任何可能导致这种情况的东西。或者,确切地说,我发现安装的实际应用程序中没有任何会话、查询和任何内容都不会对 CPU 造成如此大的负载。我尝试使用 SQL Server 关闭所有应用程序并分离它们的数据库,然后重新启动服务器。没用。
我什至卸载/重新安装了 SQL Server,但它在启动后不久就开始消耗 CPU,同时“干净”。
此外,没有“不寻常”的配置,它只是一个简单的 SQL Server 安装的干净 VM。我已经安装了它,创建了数据库,登录,就是这样。
为什么即使没有查询和附加数据库,SQL Server 也会使用如此多的 CPU?我怎样才能至少了解正在发生的事情?
此外,从链接https://mssqlwiki.com/2012/10/04/troubleshooting-sql-server-high-cpu-usage/ 我已经检查了可能由电源计划或其他原因引起的计时器问题设置。在启动时使用 -T8038 不会影响 CPU 负载。
问题如下。
让 Hyper-V VM 配置高启动内存(如 10240MB),动态内存限制处于活动状态,如 512-10240 范围。
VM 以可用的全部 RAM 启动。加载后不久,主机会从 VM 中回收多余的内存。与此同时,SQL Server 进程开始产生无法解释的 CPU 负载。
但是,如果启动内存设置为 512MB,则不会发生这种情况。