Windows Server 2008 R2中的奇怪内存使用情况


20

我希望有人能帮帮忙。我们有一台具有16GB RAM 的Windows Server 2008 R2计算机,该计算机不断消耗所有可用内存。在没有任务管理器资源监视器显示使用300MB以上的内存中的任何程序......但在服务器上的内存使用量是15.7GB。

https://i784.photobucket.com/albums/yy129/ThunderPeel2001/ram-usage.gif

唯一运行的是SQL Server 2008IIS7.5(带有ASP.Net)。

注意:重新启动后的RAM使用率开始很低,然后逐渐上升。大约一周后,在这种情况下我们不断发现自己。

我怎么能发现正在吃的东西让我们记忆犹新?:(


1
您如何精确地设置“现在将SQL Server RAM的使用量(最小/最大)限制为13GB,所以不会再发生这种情况。”?我正在运行带有SQL 2008 R2的Win 2008 R2计算机,并且遇到了同一问题。

这是SQL Server Studio中的设置。祝好运!
Django Reinhardt,

Answers:


15

这是一台64位服务器-您是否启用了内存本地策略中的锁定页面?SQL可能会消耗剩余的内存如果您查看perfmon计数器,则会看到内存分配

这是一篇深入解释它的文章

您也可以在SQL中查看计数器

SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value * 8192.0 ) / 1048576, 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    object_Name LIKE '%Buffer Manager%'
    AND RTRIM(counter_name) IN ( 'Free pages', 'Total pages',
                                 'Database pages' ) 
UNION SELECT
    object_name
   ,Counter_name
   ,cntr_value
   ,ROUND(( cntr_value / 1024 ), 0) AS cntr_value_MB
FROM
    sys.dm_os_performance_counters
WHERE
    counter_name IN ( 'Target Server Memory (KB)',
                      'Total Server Memory (KB)' )

2
这说明了一切。内存使用情况是“使用所有可用资源”(即2000TB),并且页面被锁定在RAM中,因此使用它时并非所有人都能访问它。现在将SQL Server RAM的使用量(最小/最大)限制为13GB,这不会再发生。我现在有几个可用的工具,可以随时监视任何更改。谢谢你的帮助!
Django Reinhardt,2010年

>>我现在也有几个可用的工具来监视任何更改-您使用了哪些工具?
David Christiansen

6

快速测试:重新启动SQL Server。
另一个快速测试:重新启动IIS。

您将确定其中一个是罪魁祸首,或者是否必须寻找其他地方。


看起来SQL是罪魁祸首!
Django Reinhardt,2010年


1

您实际上遇到任何与内存相关的问题吗?

请问内存使用量不断变得更高比实际安装的内存,或者它只是填补了,呆在那里?

如果内存快满了,但是您没有遇到任何问题,那么它只是在缓存中完成工作;如果您确实需要内存,那么它将自动实现。

如果内存使用量超过了物理限制,并且服务器停止运行,则说明您遇到了一些内存泄漏,请务必对其进行调试。

关于“缓存”主题的一些有趣的文章:

http://blogs.msdn.com/ntdebugging/archive/2007/11/27/too-much-cache.aspx
http://blogs.msdn.com/ntdebugging/archive/2007/10/10/the-memory -shell-game.aspx
http://blogs.msdn.com/ntdebugging/archive/2009/02/06/microsoft-windows-dynamic-cache-service.aspx


好吧,如果不重置服务器,我们将无法安装任何重要的Windows更新,因为它一直在用尽RAM。太荒谬了。无论使用什么,都不想退还。
Django的莱因哈特


0

如前所述,第一件事是对其进行修补,看看是否可以解决问题。

其次,如果这不起作用,请使用Process Explorer更好地了解您的内存使用情况。转到“查看”菜单,然后选择“列”,“进程内存”并检查“专用字节”,“虚拟大小”和“工作集大小”选项。看看这是否指示应归咎于此。

然后,一种极端的方法是尝试停止服务。例如,如果您将应用程序池和Web花园配置错误(其中太多),则IIS可能是总内存不足的地方,因此这很可能成为问题。

祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.