2017. 12. 21. 11:00
MEMORYCLERK_SQLGENERAL 로그 확인
2017. 12. 21. 11:00 in SQL
----------------------------------------------------------------------------
날짜 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
로그 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