SQL Server占用内存过高导致iMC运行异常的解决方法(限制SQL Server内存) 一、 组网
无
二、 问题描述
当iMC在Windows环境下运行时,调用SQL Server数据库来存储数据。期间可能会出现SQL Server数据库内存占用率极高且在Windows任务管理器及iMC部署监控代理无法显示SQL Server实际占用内存大小的情况,如图1以及图2。如果该情况出现,则会严重影响iMC服务器的正常运行。 tl7705
图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 sys.dm_os_memory_clerks
where type='MEMORYCLERK_SQLBUFFERPOOL'青海大学农牧学院
图3
图tsl2304
当数据库为SQL Server 2008、2008 R2、2012时,使用SQL Server Management Studio,以管理员用户身份(如sa),登录数据库,执行如下语句即可查询数据库的实际占用内存,具体操作如图5及图6。