В большинстве случаев автоматическое управление размером файла подкачки системой является оптимальной конфигурацией как для рабочих станций, так и для серверов Windows. Однако бывают сценарии (перечислил их в конце статьи), чаще всего связанные с использованием Windows в качестве серверной платформы, когда может понадобиться ручная настройка размера pagefile.
В Windows для настройки файла подкачки pagefile.sys используется графический интерфейс апплета System Properties (
sysdm.cpl
-> вкладка Advanced -> Perfomance Settings -> вкладка Advanced -> Virtual Memory -> Change).
Здесь можно посмотреть текущий размер файла подкачки (Total paging file for all drivers), проверить управляется ли он автоматически системой, изменить его начальный размер, лимит или совсем отключить использование файла подкачки.

Если вам нужно настроить файл подкачки на Windows Server Core (в котором отсутствует графический интерфейс), или на удаленном компьютере через интерактивную командную строку (или PowerShell Remoting), можно воспользоваться консольной утилитой wmic.exe.
Вывести информацию о местоположении файла pagefile.sys, текущем размере, текущем и пиковом использовании.
wmic pagefile list

Чтобы отключить автоматическое управление файлом подкачки по выбору системы, выполните команду:
wmic computersystem set AutomaticManagedPagefile=False
После этого можно задать фиксированный размер файла подкачки (в Мб):
wmic pagefileset where name="c:\\pagefile.sys" set InitialSize=4096,MaximumSize=4096
Как правило, рекомендуется сделать одинаковыми начальный и максимальный размер файла подкачки. Это предотвратит фрагментацию и увеличит производительность (особенно актуально для HDD).

Для применения новых настроек файла подкачки нужно перезагрузить Windows.
Вывести текущие пользовательские настройки файла подкачки:
wmic pagefileset

Если нужно вернутся к автоматическому управлению файлом подкачки системой:
wmic computersystem set AutomaticManagedPagefile=True
Параметры файла подкачки хранятся в ветке реестра
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
- PagingFiles – здесь настраиваются пути к файлам подкачки и их размеры, которые нужно создать при загрузке. Мульти-строковый параметр, может содержать несколько значений. Например,
C:\pagefile.sys 4096 4096– указывает что нужно использовать файл подкачки фиксированного размера на дискеC:\. - ExistingPageFiles – фактически используемые сейчас файлы подкачки (не редактируется напрямую)

Часто используется сценарий, когда файл подкачки переносится на отдельный раздел другого физического диска. Это позволит увеличить быстродействие системы.
Как выполнить перенос файла подкачки на другой диск из командной строки?
Создаем файл подкачки на другом диске:
wmic pagefileset create name= "E:\pagefile.sys "
Задаем размер файла подкачки вручную:
wmic pagefileset where name="E:\\pagefile.sys" set InitialSize=4096,MaximumSize=4096
Удаляем старый файл подкачки на диске C:\:
wmic pagefileset where name= "C:\\pagefile.sys" delete

Поэтому следует рассмотреть, как настроить файл подкачки в Windows с помощью PowerShell и CIM.
Отключаем автоматическое управление файлом подкачки:
Get-CimInstance -ClassName Win32_ComputerSystem | Set-CimInstance -Property @{AutomaticManagedPagefile = $False}
Задаем фиксированный размер pagefile:
$pagefile = Get-CimInstance Win32_PageFileSetting | Where-Object {$_.Name -eq "$env:SystemDrive\pagefile.sys"}
$pagefile | Set-CimInstance -Property @{InitialSize=4096; MaximumSize=4096}
Проверяем текущие настройки файла подкачки:
Get-CimInstance Win32_PageFileSetting | fl *

Классические рекомендации делать размер файла подкачки равным x2 от размера RAM сейчас, конечно, не имеют смысла для машин с более чем 8 Гб RAM. Для серверов с большим количеством RAM (32 Гб и более), размер pagefile наоборот можно уменьшить, либо смотреть по реальным нагрузкам. Ну, а лучше всего, оставить все на автомате 😊.
- Критичные сервера с жесткими требованиями по сбору полного дампа памяти (в этом случае размер pagefile должен быть больше объема физической RAM)
- Хосты с ограниченным системным диском
- Сервера с прогнозируемой нагрузкой, когда вы хотите предотвратить распухание pagefile.sys
- Хосты виртуализации/VDI (Hyper-V) — файл подкачки можно сделать фиксированными и уменьшить до 4-8 Гб, т.к. он не будет использоваться под нагрузки виртуальных машин.

