我希望有人能帮忙。我们有一个Windows Server 2008 R2一台拥有 16GB RAM 的机器,其所有可用内存都被某些东西占用。任务管理器或者资源监控显示任何使用超过 300MB 内存的进程...但服务器上的内存使用量为 15.7GB。
唯一运行的是SQL 服务器 2008和互联网信息服务7.5(使用 ASP.Net)。
注意:重启后 RAM 使用率一开始很低,然后逐渐上升。大约一周后,我们发现自己一直处于这种情况。
我怎样才能发现是什么消耗了我们的内存?:(
答案1
这是 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
快速测试:重新启动 SQL Server。
另一个快速测试:重新启动 IIS。
您就会确切地知道其中是否有一个人是罪魁祸首,或者是否必须去其他地方寻找。
答案3
它可能有助于使用拉姆地图看看你的记忆到了哪里。
答案4
您是否检查过 Perfmon(特别是 SQL 计数器),正如有人建议的那样你的其他帖子?