17.1.23

Изменения dbcc memorystatus в SQL Server 2005

По материалам статьи Slava Oks: Changes in dbcc memorystatus in Yukon


Вероятно, Вам доводилось использовать в SQL Server 2000 команду dbcc, выдающую информацию о состоянии памяти. В Yukon разработчики изменили выводимую dbcc memorystatus информацию, чтобы учесть изменения в дизайне нового менеджера памяти, которые автор описал в предыдущих статьях.
Первая часть выводимых данных представляет собой информацию о полном объеме памяти, используемой SQLOS, SQL Server и менеджером памяти.

Memory Manager KB
VM ReservedОбщее количество VAS, зарезервированного для SQL Server
VM CommittedОбщее количество VAS, выделенного SQL Server
AWE AllocatedПолный объем памяти распределенный с использованием механизмов AWE.
Reserved MemoryОбщее количество зарезервированной памяти (специальная память, используемая в чрезвычайных ситуациях)
Reserved Memoryin Use Общее количество зарезервированной памяти, используемой в настоящее время

Следующая часть подводит итог об узле процессора

Memory node Id = 0 KB
VM ReservedКоличество VAS, распределенного этому узлу
VM CommittedКоличество VAS, выделенного этому узлу
AWE AllocatedОбъём распределенной этому узлу памяти, с использованием механизмов AWE
MultiPage AllocatorОбъем памяти, распределенный этому узлу через программу распределения нескольких страниц
SinglePage AllocatorОбъем памяти, распределенный этому узлу через программу распределения одиночных страниц, и полученный из буферного пула.

Далее следует информация, относящаяся к узлу, которая сгруппирована по типу клерка памяти. Как Вы должны помнить, существует несколько клерков.

(будет выдано 5 строк)

MEMORYCLERK_SQLGENERAL (node 0) KB
VM 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) KB
VM 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.

Комментариев нет:

Отправить комментарий