Windows Server 2003内存问题

我遇到了一个大的内存问题,在服务器上造成重大的麻烦。

在机器上有Windows 2003 x86,SQL Server 2005和一个运行着许多应用程序的IIS。 8处理器系统与4Gb的RAM。 最近出现的主要问题是内存使用量一直很高,大约3.8Gb。 经过一段时间重新启动后,它开始增长到3.8 – 4Gb,然后一些应用程序停止响应请求,sql服务器查询执行速度减慢,唯一剩下要做的是重新启动,这是不好的。

当我查看进程上的任务pipe理器时,所消耗的内存总和几乎不超过1Gb。 当我打开vmmap监视器,它显示我同样的事情。

SQL Server的最大内存是2Gb。 页面文件是2 – 4Gb。

你有什么想法,我怎样才能找出什么消耗这么多的记忆?

SQL服务器可能是你的罪魁祸首。 那只野兽会尝试尽可能多地使用内存来优化自己。 在MSDN论坛上,有一个和你一样的问题。 在MSDN本身,有几篇文章将帮助您pipe理SQL Server使用的内存。

服务器内存选项 监视内存使用

祝你好运,希望这有助于一些。

如果不是IIS,我会很惊讶。 你在那里运行什么应用程序?

看性能计数器进程类别。 此类别为您的服务器中的每个进程提供一个实例,各个计数器将向您显示已分配的内存,虚拟地址空间大小以及每个进程的工作集大小。 一旦你发现哪个进程消耗了所有的内存(假设内存是在用户模式下消耗的),那么你可以针对你的调查。 IIS / ASP和SQL都是严重的内存饥饿的过程,但调查的故障排除在它们之间差别很大。 因此,在盲目地改变设置之前,先弄清楚哪一个是非常重要的。

而作为一个方面, 你不应该在同一个盒子上运行IIS和SQL 。

首先确保任务pipe理器向您显示来自所有用户的进程。 任务pipe理器中显示的内存应该非常接近盒子上的内存利用率。 那会告诉你哪些进程正在吃掉内存。 这可能是IIS的高枕无忧,根据我的意见,你应该减less应用程序池的数量,以满足需求(每个身份1个,每个框架版本1个)