Улучшения диспетчера кэша и памяти

В этом разделе описаны улучшения диспетчера кэша и диспетчера памяти в Windows Server 2012 и 2016.

Улучшения диспетчера кэша в Windows Server 2022

Теперь диспетчер кэша учитывает NUMA, что гарантирует, что система лучше избегать перемещения данных по границам NUMA. Избегайте доступа с узла NUMA к памяти и другим ресурсам ядра на другом узле NUMA, что приводит к увеличению нагрузки. Благодаря тому, что диспетчер кэша NUMA учитывает, мы исключили такие перекрестные прыжки NUMA, что позволяет оптимизировать кэшированные рабочие нагрузки ввода-вывода, работающие в конфигурациях нескольких узлов.

Улучшения диспетчера кэша в Windows Server 2019

Мы добавили поддержку нулевого копирования для служба хранилища сохраняемой памяти (PMEM). Дополнительные сведения о постоянной памяти см. в статье "Общие сведения о постоянной памяти и развертывании". В режиме Direct Access (DAX) PMEM работает так, как память, чтобы получить наименьшую задержку, при этом мы устраняем дополнительную копию данных и обходим большую нагрузку от мини-фильтров файловой системы и стека хранилища. Этот режим работает только с NTFS как файловой системой.

Улучшения диспетчера кэша в Windows Server 2016

Диспетчер кэша также добавил поддержку истинных асинхронных кэшированных операций чтения. Это может повысить производительность приложения, если оно сильно зависит от асинхронных кэшированных операций чтения.  Хотя большинство встроенных файловых систем поддерживали асинхронно кэшированные операции чтения в течение некоторого времени, часто возникали ограничения производительности из-за различных вариантов проектирования, связанных с обработкой внутренних рабочих очередей пулов потоков и файловых систем.  Благодаря поддержке ядра, диспетчер кэша теперь скрывает все сложности управления потоками и рабочими очередями из файловых систем, что делает его более эффективным при обработке асинхронных кэшированных операций чтения. Диспетчер кэша имеет один набор структур данных управления для каждого (поддерживаемого системой максимального) уровня вложения VHD, чтобы максимально увеличить параллелизм.

Улучшения диспетчера кэша в Windows Server 2012

Помимо усовершенствований Cache Manager для чтения логики для последовательных рабочих нагрузок, добавлен новый API CcSetReadAheadGranularityEx, чтобы позволить драйверам файловой системы, таким как S МБ, изменять их параметры перед чтением. Это позволяет повысить пропускную способность для удаленных сценариев файлов, отправив несколько запросов на чтение небольшого размера, а не отправку одного большого запроса на чтение заранее. Только компоненты ядра, такие как драйверы файловой системы, могут программно настраивать эти значения на основе каждого файла.

Улучшения диспетчера памяти в Windows Server 2012

Включение объединения страниц может снизить использование памяти на серверах, которые имеют много частных страниц с одинаковым содержимым. Например, серверы с несколькими экземплярами одного и того же приложения с интенсивным объемом памяти или одно приложение, которое работает с очень повторяющимися данными, может быть хорошим кандидатом на объединение страниц. Недостатком включения объединения страниц является увеличение использования ЦП.

Ниже приведены некоторые примеры ролей сервера, где объединение страниц вряд ли дает много преимуществ:

  • Файловые серверы (большая часть памяти используется страницами файлов, которые не являются частными и поэтому не объединяются)

  • Серверы Microsoft SQL Server, настроенные для использования AWE или больших страниц (большая часть памяти является частной, но нестраничной)

Объединение страниц отключено по умолчанию, но его можно включить с помощью командлета Enable-MMAgent Windows PowerShell. Объединение страниц было добавлено в Windows Server 2012.