2

我们有一台 2008 年的 SQL Server 机器,由于某种我们仍然没有弄清楚的原因,每两周这台服务器大约在同一时间和同一天停止响应,无论是星期日还是星期六,我们检查了日志和唯一的消息我们发现是这个

sql server 进程内存的很大一部分已被分页。

在操作系统日志中,我们发现了一条消息

应用程序弹出窗口:Windows - Virtual Memory Minimum Too Low:您的系统虚拟内存不足。Windows 正在增加您的虚拟内存分页文件的大小。在此过程中,可能会拒绝某些应用程序的内存请求。有关详细信息,请参阅帮助。

所以看起来操作系统的物理内存不足,我们不明白为什么每两周会发生一次,似乎内存永远不会被释放,而两周是充满所需的时间。有没有办法更好地诊断这个?我们还想知道这是否与我们使用 NHibernate 的方式有关?还是有其他原因?

4

2 回答 2

1

SQL Server 随着时间的推移消耗越来越多的内存,这是正常的。在服务器运行了几个月后,我们遇到了这个问题。SQL 的内存消耗高达数 GB,Windows 最终将其减少了……

为您的 SQL Server 设置“最大服务器内存”应该会有所帮助。在我们的 8 GB 服务器上,我们将其设置为 5.5 GB。

PS。设置“内存不足”电子邮件警报是一种很好的做法。它会在事情即将搞砸之前通知。这篇博文解释了你是如何做到这一点的

于 2014-04-26T10:04:08.993 回答
0

1)识别消耗内存的进程。使用Process 对象并识别消耗内存的进程(大Private BytesVirtual Bytes

2)如果进程结果是 SQL Server,请按照 SQL Server 内存诊断步骤进行操作。请参阅监控内存使用情况使用 DBCC MEMORYSTATUS 监控 SQL Server 内存使用情况

根据已识别的内存使用者进程和可能已识别的 SQL Server 内存管理员,可以推荐适当的操作和补救措施,但在您进行尽职调查并找到原因之前,可能无法给出任何建议。

于 2012-07-16T15:41:48.593 回答