По материалам статьи Slava Oks: Changes in dbcc memorystatus in Yukon
Вероятно, Вам доводилось использовать в SQL Server 2000 команду dbcc, выдающую информацию о состоянии памяти. В Yukon разработчики изменили выводимую dbcc memorystatus информацию, чтобы учесть изменения в дизайне нового менеджера памяти, которые автор описал в предыдущих статьях.
Первая часть выводимых данных представляет собой информацию о полном объеме памяти, используемой SQLOS, SQL Server и менеджером памяти.
VM Reserved | Общее количество VAS, зарезервированного для SQL Server |
VM Committed | Общее количество VAS, выделенного SQL Server |
AWE Allocated | Полный объем памяти распределенный с использованием механизмов AWE. |
Reserved Memory | Общее количество зарезервированной памяти (специальная память, используемая в чрезвычайных ситуациях) |
Reserved Memory | in Use Общее количество зарезервированной памяти, используемой в настоящее время |
Следующая часть подводит итог об узле процессора
Memory node Id = 0 KBVM Reserved | Количество VAS, распределенного этому узлу |
VM Committed | Количество VAS, выделенного этому узлу |
AWE Allocated | Объём распределенной этому узлу памяти, с использованием механизмов AWE |
MultiPage Allocator | Объем памяти, распределенный этому узлу через программу распределения нескольких страниц |
SinglePage Allocator | Объем памяти, распределенный этому узлу через программу распределения одиночных страниц, и полученный из буферного пула. |
Далее следует информация, относящаяся к узлу, которая сгруппирована по типу клерка памяти. Как Вы должны помнить, существует несколько клерков.
(будет выдано 5 строк)
MEMORYCLERK_SQLGENERAL (node 0) KBVM Reserved | Количество VAS, зарезервированного этим клерком для узла 0 |
VM Committed | Количество VAS, выделенного этим клерком узлу 0 |
AWE Allocated | Распределенный этим клерком узлу 0 объем памяти, при использовании механизмов AWE. |
SM Reserved | Количество VAS, зарезервированного этим клерком для узла 0, с использованием разделяемой памяти и API мапирования файла |
SM Committed | Количество VAS, выделенного этим клерком узлу 0 с использованием разделяемой памяти и API мапирования файла |
SinglePage Allocator | Объем памяти из буферного пула, распределенный этим клерком узлу 0 через программу распределения одиночных страниц |
MultiPage Allocator | Объем памяти, распределенный клерком узлу 0 через программу распределения нескольких страницы |
После этого dbcc memorystatus выводит резюме для каждого клерка в разрезе узлов.
MEMORYCLERK_SQLGENERAL (node 0) KBVM Reserved | Количество VAS, зарезервированное этим клерком для всех узлов |
VM Committed | Количество VAS, выделенного этим клерком всем узлам |
AWE Allocated | Объём распределенной клерком памяти для всех узлов, с использованием механизмов AWE |
SM Reserved | Количество VAS, зарезервированного клерком для всех узлов с использованием разделяемой памяти и API мапирования файла |
SM Committed | Количество VASвыделенного клерком всем узлам с использованием разделяемой памяти и API мапирования файла |
SinglePage Allocator | Объем памяти полученной из буферного пула, и распределенный клерком всем узлам через программу распределения одиночных страниц |
MultiPage Allocator | Объем памяти, распределенный клерком всем узлам через программу распределения нескольких страниц |
Остальная часть выдаваемой информации подобна той, которая описана в статье: INF: Using DBCC MEMORYSTATUS to Monitor SQL Server Memory Usage В большинстве случаев, предоставляемой этой командой информации недостаточно для выяснения причин возникновения проблем с памятью. Однако, информации этой команды может быть достаточно для понимания того, как распределяется память в SQL Server. Автор обычно использует эту команду в качестве первого шага при отладке проблем SQL Server с памятью. Например, если у сервера произойдёт сбой из-за ошибки резервирования VAS, зная сколько распределено VAS, можно классифицировать утечку как внутренней, так и внешней памяти SQL Server.
Комментариев нет:
Отправить комментарий