Visual Studio ASP.NET 调试导致空闲时 SQL 服务器高 CPU
Visual Studio ASP.NET Debugging causes SQL Server high CPU when idle
我有一个 ASP.NET 4 项目,在 Windows Server 2012 上使用 SQL Server 2016。这是一个开发环境,我是唯一的用户。当我 运行 IIS8 中的项目并使用 Visual Studio 2015 的调试 -> "Attach to Process" 它连接到我的 w3wp 进程就好了。然而,在任务管理器中,我可以立即看到进程 "SQL Server Windows NT - 64 bit" 跳转到 CPU 使用率 >20%,即使没有查询。我重复了几次,这肯定与 VS 调试有关。当我停止调试时,它会回到 0% 几秒钟,然后跳回到 20% 并保持在那里。
问题是在这种状态下,即使是微不足道的 SQL 查询也非常慢或产生超时。因此调试甚至打开项目的任何 DB-backed 页面变得几乎不可能。
解除 SQL-Server 并使站点再次可用的唯一方法是关闭 Visual Studio 中的整个解决方案。
Visual Studio 是否在启动一般调试时启动一些(不需要的!)隐藏 SQL 调试?如果是这样,我该如何禁用它?
这是根据以上评论整理的答案...
问题是系统内存不足。这导致使用大量缓慢的虚拟内存,导致系统停止运行。这是一个有效的答案,如果其他人有这个问题,应该作为未来的注释。
SQL 服务器是 "supposed" 到 return 到 OS 的内存,但实际上它就像一个贪婪的小巨魔。我总是将其设置为始终至少有 2GB 可用空间供 OS 使用。上述问题是由内存不足引起的。限制其他程序内存访问或增加可用系统内存应该可以解决您的问题。
我有一个 ASP.NET 4 项目,在 Windows Server 2012 上使用 SQL Server 2016。这是一个开发环境,我是唯一的用户。当我 运行 IIS8 中的项目并使用 Visual Studio 2015 的调试 -> "Attach to Process" 它连接到我的 w3wp 进程就好了。然而,在任务管理器中,我可以立即看到进程 "SQL Server Windows NT - 64 bit" 跳转到 CPU 使用率 >20%,即使没有查询。我重复了几次,这肯定与 VS 调试有关。当我停止调试时,它会回到 0% 几秒钟,然后跳回到 20% 并保持在那里。
问题是在这种状态下,即使是微不足道的 SQL 查询也非常慢或产生超时。因此调试甚至打开项目的任何 DB-backed 页面变得几乎不可能。
解除 SQL-Server 并使站点再次可用的唯一方法是关闭 Visual Studio 中的整个解决方案。
Visual Studio 是否在启动一般调试时启动一些(不需要的!)隐藏 SQL 调试?如果是这样,我该如何禁用它?
这是根据以上评论整理的答案...
问题是系统内存不足。这导致使用大量缓慢的虚拟内存,导致系统停止运行。这是一个有效的答案,如果其他人有这个问题,应该作为未来的注释。
SQL 服务器是 "supposed" 到 return 到 OS 的内存,但实际上它就像一个贪婪的小巨魔。我总是将其设置为始终至少有 2GB 可用空间供 OS 使用。上述问题是由内存不足引起的。限制其他程序内存访问或增加可用系统内存应该可以解决您的问题。