I\xe2\x80\x99m 试图了解我的服务器(Windows Server 2012R2)上是否存在内存泄漏。该服务器具有 48 GB RAM,设计用于仅运行 DBMS(SQL Server 2014),但还安装了其他工具,如 Symantec Endpoint Protection、FireEye 和一些监控工具/服务。当前配置为为 DBMS 保留 42 GB,为操作系统和其他服务保留 6 GB。当只为操作系统和其他服务保留 4 GB 时,会出现内存不足错误,在我将其增加到 6 GB 后,该错误消失了。对于 SQL Server 计算机来说,高 RAM 使用率本身是正常的,因为 SQL Server 在 RAM 中缓冲数据。
\n让我担心的是,交换使用量(性能计数器分页文件 -> 使用情况)在过去 2 个月中逐渐增加,目前达到 24 GB(交换文件大小)的 15%。我\xe2\x80\x99m 不确定这是否可以,因为Windows 即使在正常情况下也会将内容放入交换区,或者它是否表明一段时间后6 GB 也将\xe2\x80\x99 不够用。下面的图表中,绿线是 RAM 使用情况(当我重新启动 SQL Server 时急剧下降,然后又迅速上升),黄线是自 5 月中旬以来的交换使用情况。
\n交换使用图像
\n\n我做了什么:
\n转储性能计数器 \xe2\x80\x9cProcess->Private bytes\xe2\x80\x9d。这里没什么可疑的。以 MB 为单位的 TOP10 为(总计 44711 MB):
\nmemory windows sql-server memory-leaks windows-server-2012-r2