我们有一个混合 OLAP/OLTP 工作负载的数据库。查询是非常临时的,并且是在中间层应用服务器中动态创建的。当我们启动服务器时,性能还算可以接受,但是内存消耗会越来越多,直到所有可用内存(30GB)耗尽。之后,系统变得越来越慢。
命令之类的Dbcc freeproccache无效。
没有多少交易select * from sys.dm_tran_session_transactions(不超过系统正常时),有时这个列表是空的。
第一个结果dbcc memorystatus是
VM Reserved 42136628
VM Committed 1487176
Locked Pages Allocated 24994048
Reserved Memory 1024
Reserved Memory In Use 0
Run Code Online (Sandbox Code Playgroud)
重新启动 SQL Server 可以暂时解决问题。
服务器在专用硬件(不是虚拟机)上运行。我们有一些预定的工作,但我们暂时禁用了它们,没有任何变化。在同一台服务器上还有其他中层应用程序运行,但它们使用的内存不超过 2GB,CPU 可以忽略不计,并且几乎没有 I/O。我们重新启动了所有此类应用程序,没有任何更改。