Этот раздел описывает некоторые счетчики Performance Monitor, связанные с мониторингом памяти:
♦ Buffer Cache Hit Ratio (% использования выделенной памяти), здесь Object - Memory (Память);
♦ Pages/sec (Обмен страниц 8 сек.), здесь Object - Memory;
♦ Page Faults/sec (Ошибок страницы/сек.), здесь Object - Memory.
В этом разделе также описывается одна команда и два представления, связанные с мониторингом памяти:
♦ DBCC MEMORYSTATUS;
♦ sys.dm_os_memory_clerks;
♦ sys.dm_os_memory_objects.
Счетчик Buffer Cache Hit Ratio отображает процент страниц, которые не требуется читать с диска. Чем выше это отношение, тем реже система должна обращаться к жесткому диску для чтения данных, при этом улучшается общая производительность. Обратите внимание, что не существует правильного значения этого счетчика, потому что оно зависит от приложения.
Счетчик Pages/sec отображает объем обмена страниц (т. е. количество страниц, записанных на диск или считанных с диска в секунду). Этот счетчик является важным индикатором наличия ошибок, которые приводят к проблемам производительности. Если значение этого счетчика слишком велико, вы должны принять решение о дополнительной физической памяти.
Счетчик Page Faults/sec отображает среднее количество ошибок страниц в секунду. Этот счетчик включает как программные ошибки, так и ошибки диска. Ошибки страниц появляются, когда системный процесс ссылается на виртуальную страницу памяти, которая в этот момент не находится в рабочей области физической памяти. Если запрашиваемая страница находится в списке простаивающей памяти или страница в настоящий момент разделяется другими процессами, то генерируется ошибка программной страницы, и ссылка на память разрешается без физического обращения к диску. Однако если страница, на которую осуществляется ссылка, находится в файле страниц, то генерируется ошибка страницы диска, и данные должны быть загружены с диска.
Команда dbcc memorystatus предоставляет мгновенный снимок текущего состояния памяти Database Engine. Вывод этой команды полезен в процессе исправления ошибок, которые связаны с использованием памяти Database Engine или со специфическими ошибками памяти (многие из которых автоматически отправляют этот вывод в протокол ошибок).
Представление sys.dm_os_memory_cierks возвращает набор всех служб памяти, которые являются активными в текущем экземпляре. Вы можете использовать это представление для получения распределения памяти для различных типов памяти.
Представление sys.dm_os_memory_objects возвращает объекты памяти, которые в настоящий момент распределены системой базы данных. Это представление динамического управления в первую очередь служит для анализа использования памяти и для анализа возможного недостатка памяти, как показано в примере 21.2.
Здесь все объекты памяти группируются в соответствии с их типом, а затем используется значение столбца pagesaiiocatedcount для отображения объема памяти каждой группы.