2012-07-16 87 views
2

我们有一台2008 SQL Server计算机,出于某种原因,我们还没弄清楚,每两周这台服务器在同一时间和同一天停止响应,无论是星期日还是星期六,我们检查了日志,并且我们发现的唯一消息是这样的SQL Server停止响应,服务器冻结

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

上的操作系统日志,我们发现算法中的消息

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

所以它看起来像操作系统的物理内存,我们不已了解为什么会这样,每两个星期,就好像内存永远不会被释放,两周才能得到充分的时期。有没有办法可以更好地诊断此问题?我们也想知道它是否与我们如何使用NHibernate相关?还是有其他原因?

+0

检查你的'日志文件'大小。绝对是'GB' :)。如果是这样你使用以下语法来'shrink'它定期'USE数据库名上 GO DBCC SHRINKFILE(,1) BACKUP LOG <数据库> WITH TRUNCATE_ONLY DBCC SHRINKFILE(,1) GO'点击此处查看** [参考资料](http://blog.sqlauthority.com/2006/12/30/sql-server-shrinking-truncate-log-file-log-full/)** – 2012-07-16 15:34:15

+0

@ryudice - 这不是必需的SQL Server消耗所有内存。作为一个快速检查,我会打开taskmanager并对使用的内存值进行排序。如果它确实是SQL Server,则可以开始深入研究。 – 2012-07-16 15:34:20

+0

@RGI你不能再这样做了,从SQL Server 2008开始.155级,15级,状态1- 'TRUNCATE_ONLY'不是公认的备份选项。' – 2012-07-16 15:59:12

回答

0

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

2)如果过程真可谓是SQL Server,请SQL Server内存诊断步骤的过程。见Monitoring Memory UsageUsing DBCC MEMORYSTATUS to Monitor SQL Server Memory Usage

根据确定的存储消费过程和posibly所识别SQL Server内存业务员,可以推荐appropiate措施和补救措施,但直到你做尽职调查,查明原因可能被未给出建议。

1

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

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

PS。设置“低内存”电子邮件警报是一种很好的做法。它会让知道之前的事情即将搞乱。这个博客post解释了你如何做到这一点。