2017. 12. 21. 11:00

MEMORYCLERK_SQLGENERAL 로그 확인

----------------------------------------------------------------------------
날짜        2017-12-21 오전 9:41:45
로그        SQL Server (보관 #1 - 2017-12-21 오전 9:49:00)

원본        spid89

메시지
MEMORYCLERK_SQLGENERAL (node 0)                  KB
---------------------------------------- ----------
VM Reserved                                       0
VM Committed                                      0
Locked Pages Allocated                            0
SM Reserved                                       0
SM Committed                                      0
SinglePage Allocator                           3016
MultiPage Allocator                            6464
----------------------------------------------------------------------------
 
위와 같은 로그가 지속적으로 확인되었으며, 해당 로그에 대해서 아래와 같은 문서를 확인하였습니다.
 
 
결론 : Memoryclerk_sqlgeneral의 세부타입 Memobj_Resource 에 2.5기가 할당 SQL Server 2008, Sql Server 2012 또는 Sql Server 2008 R2 AUTO_UPDATE_STATISTICS_ASYNC 통계 옵션을 사용할때 발생하는 메모리 누수 버그로 예상되는 사항입니다.
 


 -- 메모리 클럭 상위 20개 확인

-- (최상위 타입 MEMORYCLERK_SQLGENERAL이 2.5기가 할당)

SELECT TOP(20) [TYPE], SUM(SINGLE_PAGES_KB) AS [SPA MEM, KB]
FROM SYS.DM_OS_MEMORY_CLERKS
GROUP BY [TYPE]
WITH ROLLUP
ORDER BY SUM(SINGLE_PAGES_KB) DESC; 

 

-- 메모리 세부타입 확인

-- (MEMORYCLERK_SQLGENERAL의 세부타입 MEMOBJ_RESOURCE에 2.5기가 할당)

SELECT

sum(convert(numeric,pages_in_bytes))/1024./1024 sizeMB, --> SQLServer 2012

sum(convert(numeric,pages_allocated_count) * page_size_in_bytes)

/1024/1024 sizeMB, --> SQLServer 2008

MO.TYPE, MC.TYPE
FROM SYS.DM_OS_MEMORY_OBJECTS MO
JOIN SYS.DM_OS_MEMORY_CLERKS MC
ON MO.PAGE_ALLOCATOR_ADDRESS=MC.PAGE_ALLOCATOR_ADDRESS
GROUP BY MO.TYPE, MC.TYPE
HAVING MC.TYPE = 'MEMORYCLERK_SQLGENERAL'
ORDER BY 1 DESC;



- 참고 문서

https://blog.naver.com/ioahn/90168975797