admin 管理员组

文章数量: 1086019


2024年4月14日发(作者:计算器有进制转换功能吗)

SQL Server占用内存过高导致iMC运行异常的解决方

法(

限制SQL Server内存

)

一、

组网

二、

问题描述

当iMC在Windows环境下运行时,调用SQL Server数据库来存储数据。期间可

能会出现SQL Server数据库内存占用率极高且在Windows任务管理器及iMC部

署监控代理无法显示SQL Server实际占用内存大小的情况,如图1以及图2。

如果该情况出现,则会严重影响iMC服务器的正常运行。

图1

图2

三、

过程分析

SQL Server为了使用大内存,采用AWE(32位操作系统)或LockedPage技术,

访问独立的内存区域。这部分内存区域不在进程的地址空间中,因此在Windows

“任务管理器”的进程列表中,看不到使用的这部分内存。该现象非iMC导致,

如果要查看该部分内存,则需要在SQL Server Management Studio中执行特定

语句进行查询。

当数据库为SQL server 2005时,使用SQL Server Management Studio,以管理员

用户身份(如sa),登录数据库,执行如下语句即可查询数据库的实际占用内

存,具体操作如图3及图4。

select sum(multi_pages_kb

+ virtual_memory_committed_kb

+ shared_memory_committed_kb

+ awe_allocated_kb) as total_mem_occupied

from _os_memory_clerks

where type='MEMORYCLERK_SQLBUFFERPOOL'


本文标签: 内存 数据库 运行 进程 实际