3
SQL Server的“总服务器内存”消耗停滞了数月,而可用空间增加了64GB以上
我遇到了一个奇怪的问题,即SQL Server 2016 Standard Edition 64位似乎已经限制了为其分配的总内存的正好一半(128 GB的64GB)。 输出@@VERSION为: Microsoft SQL Server 2016(SP1-CU7-GDR)(KB4057119)-13.0.4466.4(X64)2017年12月22日11:25:00版权所有(c)Windows Server 2012 R2 Datacenter 6.3上的Microsoft Corporation标准版(64位)(内部版本9600:)(管理程序) 输出sys.dm_os_process_memory为: 当我查询时sys.dm_os_performance_counters,我看到Target Server Memory (KB)处的131072000,Total Server Memory (KB)位于处的一半65308016。在大多数情况下,我认为这是正常现象,因为SQL Server尚未确定它需要为其自身分配更多的内存。 但是,它已经“卡住”了〜64GB,已经超过2个月了。在此时间段内,我们对某些数据库执行了大量内存密集型操作,并向实例添加了近40个数据库。我们共有292个数据库,每个数据库都有4GB的预分配数据文件(自动增长速率为256MB)和2GB的日志文件的自动增长速率为128MB。我每晚晚上12:00执行一次完整备份,并从星期一到星期五从6:00 AM到8:00 PM(每15分钟间隔)开始事务日志备份。这些数据库的整体吞吐量相对较低,但是我怀疑SQL Server尚未爬到Target Server Memory 很自然地会通过添加新数据库,正常查询执行以及已运行的占用大量内存的ETL管道来实现。 SQL Server实例本身位于虚拟化(VMware)Windows Server 2012R2服务器之上,该服务器具有12个CPU,144GB内存(128GB到SQL Server,16GB预留给Windows)以及总共4个虚拟磁盘,这些虚拟磁盘位于具有15K SAS驱动器的vSAN之上。Windows自然位于64GB C:磁盘上,页面文件为32GB。数据文件位于2TB D:磁盘上,日志文件位于2TB L:磁盘之上,而tempdb位于256GB T:磁盘上,其中8x16GB文件没有自动增长。 我已验证除之外,服务器上没有其他SQL Server实例在运行MSSQLSERVER。 该服务器完全专用于SQL Server实例,因此我们没有在其上运行的其他任何可能消耗内存的应用程序或服务。 我利用RedGate SQL …