Файл подкачки Windows Server 2016 не увеличивается

Файл подкачки Windows Server 2016 не увеличивается

Заранее извиняюсь, если это недостаточно ясно для понимания моей проблемы. Текст немного длинный, но я постарался сделать его понятным.

Я использую Exchange 2016 CU6 на виртуальной машине Windows Server 2016 и часто получаю предупреждение в журнале приложений о том, что у меня не хватает виртуальной памяти (файла подкачки).

введите описание изображения здесь

Мой мониторинг показывает, что размер файла подкачки составляет 4 ГБ с момента создания виртуальной машины в апреле, он никогда не увеличивался больше 4 ГБ и не уменьшался.

введите описание изображения здесь


Чтобы устранить эту проблему и понять, в чем она заключается, я создал две тестовые виртуальные машины с базовой установкой Windows Server 2016 Standard и Windows Server 2008 R2 Enterprise, обе с одинаковой конфигурацией физической и виртуальной памяти:

Тестовая конфигурация виртуальной машины

БАРАН: 4ГБ

Диск C (выделенный для системы): 32 ГБ

Диск G (отведен под файл подкачки): 8 ГБ

Файл подкачки для диска C: 512 - 1024 МБ

Файл подкачки для диска G: Размер, управляемый системой

введите описание изображения здесь

Моя тестовая виртуальная машина 2016 в настоящее время использует 512 МБ на диске C: и 1 ГБ на диске G:, что в общей сложности составляет 5,5 выделенной памяти.

введите описание изображения здесь

Тестовая виртуальная машина 2008 в настоящее время использует 512 МБ на диске C: и 4 ГБ на диске G:, что в сумме составляет 12,5 ГБ выделенной памяти.

введите описание изображения здесь


После долгих исследований на тему преданной памяти я нашел эту статью Марка Руссиновича:https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

Я решил использовать инструмент testlimit64.exe с ключом -m, чтобы посмотреть, увеличится ли файл подкачки на тестовой виртуальной машине 2016 и тестовой виртуальной машине 2008.

Результат отражает проблему, описанную изначально, когда файл подкачки на тестовой виртуальной машине 2016 года не увеличивается на диске G:, но увеличивается на тестовой виртуальной машине 2008:

введите описание изображения здесь

введите описание изображения здесь


Согласно этой базе знаний Microsoft:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/automatic-memory-dump, используя настройку Автоматический дамп памяти в разделеПанель управления->Система->Дополнительные параметры системы->Загрузка и восстановление->Запись отладочной информацииесли файл подкачки настроен как управляемый системой, он может задать размер файла подкачки, который меньше объема физической памяти.

В проведенных мной тестах эта настройка не использовалась, обе тестовые ВМ 2008 и 2016 были настроены с использованием дампа памяти ядра.

введите описание изображения здесь

Поэтому, если я установлю для файла подкачки на диске G: значение «Управляется системой» на тестовой виртуальной машине 2016, его размер будет автоматически установлен Windows и не будет увеличиваться при нагрузке.Это суть проблемы, поскольку это изменение поведения в Windows Server 2008.


Мой последний тест заключался в том, чтобы вручную настроить файл подкачки на диске G: на 4096–8100 МБ и снова запустить инструмент testlimit64.exe с ключом -m, и, как вы можете видеть, файл подкачки действительно увеличился с 4 ГБ до ~8 ГБ.

введите описание изображения здесь введите описание изображения здесь


Итак, вот мой вопрос: почему Windows Server 2016 не увеличивает размер файла подкачки, когда он установлен в режим системного управления? Что изменилось в этом отношении между Windows Server 2008 и 2016?

Большое спасибо за то, что вы дочитали до конца и за ваши ответы.

решение1

В соответствии с Эта статьяДля Server 2016 системные файлы подкачки имеют следующий размер:

3 × RAM or 4 GB, whichever is larger. This is then limited to the volume size ÷ 8. However it can grow to within 1 GB of free space on the volume if required for crash dump settings.

Для Server 2008 указано:

3 × RAM or 4 GB, whichever is larger

Похоже, что правило 1/8, применяемое на Server 2016, — это то, что вы видите.

Надеюсь, это поможет...Ура!

Связанный контент