我有一个没有分页内存问题的服务器。由于IIS无法获得足够的非分页内存,因此使用率会缓慢上升,直到耗尽为止,服务器将停止提供网页服务。
这是一个32位的windows 2003服务器。
任务管理器没有显示可疑的活动,所有正在运行的进程都消耗了“正常”数量的NP内存,并且随着时间的推移,它们都保持稳定。
显示所有用法的标记是“偶数”,这是根据标记列表为事件查看器的标记。事件日志中没有出现其他警告或错误,除非NP内存耗尽,IIS开始抱怨。
服务器运行MSSQL、IIS和hMailserver,没有其他任何内容。
有人有什么想法或者以前见过吗..?如果它是一个与驱动程序相关的标记,比如网卡之类的,但是事件查看器,那么我应该去哪里呢?
偶数的Poolmon输出
Tag Type Allocs Frees Diff Bytes Per Alloc
Even NonP 65563201 ( 948) 64585254 ( 861) 980124 47049280 ( -2384) 48谢谢
发布于 2013-10-16 13:55:14
我首先要检查的是确保在Server中设置了max server memory (MB)。这是一个服务器选项,它告诉server“这是您可以拥有的所有内存”。默认情况下,Server将使用所有可用内存进行数据缓存等操作,这在共享环境中可能是坏消息,就像您所拥有的一样。
在SQL实例中,打开一个新的查询窗口并键入:
sp_configure 'show advanced options',1
GO
RECONFIGURE
GO
sp_configure 'max server memory (MB)'如果config_value的值为0,则意味着Server可以获取它所需的所有内存。在这种情况下,您应该将其设置为更合理的环境。
您没有提到您的服务器有多少内存,但是由于您所处的环境是32位的(而且您也没有指定哪个版本的Windows),我将继续使用4GB。您可能希望将SQL限制在1GB以内,以便允许其他应用程序服务。你可以这样做:
sp_configure 'max server memory (MB)',1000
GO
RECONFIGURE
GO如果您使用的是Windows2003Enterprise,并且内存大于4GB,那么当然可以将最大内存设置为更多。
您可能还想研究使用地址窗口扩展(AWE),这可以给您更多的喘息空间。你可以在TechNet 这里上读到。
发布于 2013-10-16 14:57:14
当问题发生时,打开任务管理器并添加Handles列。对该列进行排序,并查找任何似乎过度的值。它可能有助于获得服务器的基线在启动和随着时间的推移。启动后多长时间才能看到问题?有一个很好的机会,处理的最高/不寻常的数量将是你的罪魁祸首,虽然确切地确定为什么可能是另一个野兽。
在我的例子中,我看到它是由CommVault (备份)代理卸载失败引起的,它留下了一个非功能服务,每隔几秒钟就会为HKCU (注册表)创建两个句柄。每个打开的句柄都会消耗一些内存,并最终使整个组织的Exchange环境陷入瘫痪。
Sysinternals handle.exe也可以用于查看哪些进程使用了多个句柄,哪些对象被附加到哪个对象。
https://serverfault.com/questions/546358
复制相似问题