SQL Server停止响应并冻结服务器

时间:2012-07-16 15:29:06

标签: c# sql-server asp.net-mvc-3 sql-server-2008 nhibernate

我们有一台2008 SQL Server机器,出于某种原因,我们仍然没有想到,每两周这台服务器在同一时间和同一天停止响应,它是星期日或星期六,我们检查了日志和我们发现的唯一信息就是这个

  

sql server进程内存的一个重要部分已被分页。

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

  

应用程序弹出窗口:Windows - 虚拟内存最小值太低:您的系统虚拟内存不足。 Windows正在增加虚拟内存分页文件的大小。在此过程中,某些应用程序的内存请求可能会被拒绝。有关更多信息,请参阅“帮助”

因此看起来操作系统的物理内存不足,我们不会理解为什么每两周就会发生这种情况,似乎内存永远不会被释放,两周就是充满所需的时间。有没有办法可以更好地诊断这个?我们也想知道它是否与我们如何使用NHibernate有关?还是有其他原因吗?

2 个答案:

答案 0 :(得分:1)

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

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

PS。设置“低内存”电子邮件警报是一种很好的做法。在事情即将陷入困境之前,它会让知道。此博客post解释了您是如何做到这一点的。

答案 1 :(得分:0)

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

2)如果该过程结果是SQL Server,请遵循SQL Server内存诊断步骤。请参阅Monitoring Memory UsageUsing DBCC MEMORYSTATUS to Monitor SQL Server Memory Usage

根据已识别的内存使用者进程以及可识别的SQL Server内存职员,可以建议使用适当的操作和补救措施,但是直到您进行尽职调查并找到原因,无法提供任何建议。