Поделиться через


Наблюдение за использованием памяти

Проводите периодический мониторинг экземпляра SQL Server для подтверждения того, что память используется в допустимых пределах.

Для контроля условий нехватки памяти используйте следующие счетчики объектов.

  • Память: Доступно байтов

  • Память: Страниц/с

Счетчик Доступно байтов указывает на то, сколько байт памяти доступно на данный момент для использования процессами. Счетчик Страниц/с показывает число страниц, которые были или получены с диска из-за ошибок страниц физической памяти, или записаны на диск для освобождения пространства в рабочем множестве из-за ошибок страниц.

Малые значения счетчика Доступно байтов могут указывать на то, что существует общая нехватка памяти на компьютере или что приложение не освобождает память. Большое значение счетчика Страниц/с может означать излишнюю подкачку. Наблюдение за счетчиком Память: Ошибки страниц/с позволяет убедиться в том, что активность диска не вызвана трансляцией страниц.

Низкий уровень подкачки (и редкие ошибки страниц) является нормальным, даже если у компьютера достаточно большое количество доступной памяти. Диспетчер виртуальной памяти (VMM) Microsoft Windows берет страницы из SQL Server и других процессов по мере того, как он урезает размеры рабочих множеств этих процессов. Деятельность VMM может привести к ошибкам страниц. Чтобы определить, является ли SQL Server или другой процесс причиной излишней подкачки, наблюдайте за счетчиком Процесс: Ошибки страниц/с для экземпляра процесса SQL Server.

Дополнительные сведения об устранении проблемы излишней подкачки см. в документации по операционной системе Windows.

Изоляция памяти, используемой SQL Server

По умолчанию SQL Server изменяет свои требования к памяти динамически, исходя из доступных ресурсов системы. Если SQL Server нужно больше памяти, он производит запрос к операционной системе, чтобы определить, доступна ли свободная физическая память, и использует ее. Если SQL Server не нуждается в памяти, выделенной для него, он освобождает ее для операционной системы. Однако можно отказаться от динамического использования памяти, задав значения параметрам конфигурации сервера min server memory и max server memory. Дополнительные сведения см. в разделе Параметры памяти сервера.

Для мониторинга объема памяти, используемого SQL Server, наблюдайте за следующими счетчиками производительности.

  • Процесс: Рабочее множество

  • SQL Server: Диспетчер буферов: Коэффициент попаданий в кэш буфера

  • SQL Server: Диспетчер буферов: Страницы базы данных

  • SQL Server: Диспетчер памяти: Общий объем памяти сервера (КБ)

Счетчик Рабочее множество отображает объем памяти, занятый процессом. Если это число постоянно меньше объема памяти, установленного параметрами сервера min server memory и max server memory, SQL Server настроен для использования слишком большого объема памяти.

Значения счетчика Коэффициент попаданий в кэш буфера зависят от конкретного приложения. Однако желательно значение коэффициента, равное 90 процентам или выше. Добавляйте память, пока значение не будет постоянно больше 90 процентов. Значение выше 90 процентов указывает на то, что более 90 процентов всех запрошенных данных были получены из кэша данных.

Если счетчик Общий объем памяти сервера (КБ) постоянно показывает высокие значения по сравнению с объемом физической памяти компьютера, это может означать, что требуется установить в компьютер больше памяти.

Определение текущего выделенного объема памяти

Следующий запрос возвращает информацию о выделенном в данный момент объеме памяти.

SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;