大约每周一次,我的MSSQL服务器超时,或者机器用完RAM。 今天早上它达到了3.9GB的可用4,MSSQL占用2.5GB。
我关心的是,我没有configurationSQL来释放内存,所以我运行sp_who2,同时发生超时以查看正在运行的进程。
如果我可以发布CSV数据文件,但是,总共有85个进程,大部分与全文服务有关:
FT收集器 – 其中大约35个在“sa”帐户下运行,具有睡眠或背景状态的主数据库,许多依赖于其他进程。 这是正常的吗?
MySite数据库 – 一个活动站点/数据库只有5个进程,并且都处于睡眠或暂停状态 – 但是他们的最后一批date设置为1/12/2020。 这是正常的吗?
数据库大小只有20mb左右,stream量很低,所以我想可能是限制了SQL访问的内存量(从不限制到2GB)。
任何想法/build议,将不胜感激。
Mny谢谢
本
您应该始终configurationSQL的上限,否则将占用所有可用的内存。 有了4 Gig的RAM,只有20 Meg的数据库设置,内存限制到2 Gig应该是绰绰有余的。
你使用全文的东西?
发生这种情况时系统事件日志是否显示错误?
SQL日志是否显示死锁或任何其他可能的超时时间?
你确定这是SQL的一个问题,而不是由服务器上运行的其他东西(故意或其他)造成的?
尝试这个。 安装Windows的debugging工具。 在控制台上启动windbg.exe并保持运行。 您需要select文件>内核debugging>本地选项卡。 在下一步中,input!vm命令,它将为您提供服务器上所有内存使用情况的完整画面。
你在x86上,并在boot.ini中使用/ 3GB开关? 在这种情况下,在x86 32位体系结构上,由于/ 3GB仅为操作系统留出1 GB的内存空间,因此您会对内核内存(分页/非分页池,系统PTE和文件系统高速caching)产生额外的压力。
在x86上,当你运行!vm时,你应该看到如下所示:
NonPagedPool Max: 65281 ( 261124 Kb) PagedPool Maximum: 134144 ( 536576 Kb)
这些数字可以在启动时dynamic设置。 当发生事件时,可以将使用情况与最大值进行比较,以确定是否是内核内存问题。
http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx