我被要求在客户端设备上对承载我们应用程序的服务器进行故障排除。
在过去一周半的时间里,客户曾两次向我们投诉。在一种情况下,他们声称服务器的内存被“耗尽”,而在另一种情况下,他们声称CPU被“耗尽”。在这两种情况下,我们的应用程序变得不可用,客户机被迫重新启动服务器。
服务器规范如下:
System Manufacturer Dell Inc.
System Model PowerEdge R320
System Type x64-based PC
Processor Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz, 2200 Mhz, 6 Core
有谁知道MS 2014标准版的设置或触发器会在系统内存使用率超过90%时触发SQL开始使用CPU%。我有一个小应用程序,它没有访问SQL,但确实使用了大量的内存。当系统上的内存到达90%+利用率时,Server开始连续显示CPU使用情况,直到工具集停止为止。
我已经运行了多个分析,例如分析器、查询以查看最后处理的语句、到数据库的连接等.没有什么比SQL Server的触发器更突出的了。更奇怪的是,这台特定的机器上同时有SQL Server 2014标准和SQL Server express,这两个版本都会触发峰值(这不是我的服务器,而是我必须处理的服务器)。
我们有Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64) Nov 2 2020 19:19:59 Copyright (C) 2017 Microsoft Corporation Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: )
服务器实际安装了256 GB的RAM。Server的内存限制设置为210 GB。我注意到,服务器在进行查询时每个查询请求39 GB内存(210 * 0.7