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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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