Отключить файл подкачки windows 2012 r2

Вопрос о размере файла подкачки довольно часто встречается на различных технических ресурсах, однако однозначных рекомендаций на этот счет нет. Попадаются как советы установить файл подкачки в 1.5-2 раза больше объема установленной памяти, так и полностью отключить его. И то и другое абсолютно бессмысленно с практической точки зрения. Поэтому сегодня речь пойдет о том, что такое файл подкачки (он же своп-файл, он же страничный файл) и как правильно выбрать и настроить его размер.

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

Виртуальная память

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

Операционная система Windows работает не с физической, а именно с виртуальной памятью. Технически виртуальная память состоит из физической памяти (ОЗУ) и специального файла(-ов) подкачки, объединенных в единое виртуальное адресное пространство. Для каждого запущенного процесса выделяется собственное, отдельное от других процессов адресное пространство в виртуальной памяти, в котором он выполняется и которым управляет. Для обращения к памяти используются указатели на адреса в виртуальном адресном пространстве, при этом сам процесс не в курсе 🙂 того, где именно хранятся его данные — в ОЗУ или в файле, это решает операционная система.

Максимально возможный объем доступной виртуальной памяти зависит от разрядности операционной системы. Так в 32-разрядной системе процесс может адресовать не более 4 гигабайт (232) памяти. Для 64-разрядного процесса теоретическое ограничение составляет 16 экзабайт (264), а практически в современных 64-разрядных версиях Windows поддерживается адресное пространство объемом до 16 терабайт.

Примечание. Некоторые 32-разрядные версии Windows Server используют технологию PAE, позволяющую адресовать до 64ГБ памяти. Подробнее о PAE можно узнать здесь.

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

Управление памятью происходит примерно так.

Виртуальное адресное пространство поделено на блоки равного размера, которые называют страницами (pages). Отсюда кстати и название pagefile — страничный файл. Физическая память также поделена на разделы, называемые страничными фреймами (page frames), которые используются для хранения страниц.

Каждому процессу при старте выделяется ″кусок″ адресного пространства в виртуальной памяти. Соответственно в каждый момент времени в памяти находятся страницы из виртуального адресного пространства каждого процесса. Страницы, находящиеся в физической памяти и доступные немедленно, называются действительными (valid pages), а страницы, которые в данный момент недоступны, например находящиеся на диске — недействительными (invalid pages).

При обращении процесса к странице памяти, помеченной как недействительная, происходит страничное прерывание (page fault). При возникновении прерывания диспетчер виртуальной памяти находит запрашиваемую страницу и загружает ее в свободный страничный фрейм физической памяти. Собственно этот процесс и называется подкачкой (paging).

При дефиците физической памяти диспетчер памяти выбирает фреймы, которые можно освободить и переносит их содержимое на диск, в файл подкачки. Принцип переноса такой: когда процесс использовал все выделенные ему фреймы, то при каждом страничном прерывании в этом процессе система удаляет из физической памяти одну из его страниц. Выбор страницы осуществляется по принципу первым пришел — первым ушел (first in, first out, FIFO), т.е. в файл подкачки переносится страница, дольше всех находившаяся в памяти.

У каждого процесса есть свой рабочий набор (working set) — набор страниц, находящихся в физической памяти. Рабочий набор определяет размер физической памяти, выделенной процессу, он имеет минимальный и максимальный размер. В момент запуска процессу назначается минимальный размер рабочего набора, т.е. минимальное количество страниц, которые гарантированно будут находится в оперативной памяти. При достаточном количестве свободной физической памяти процесс может увеличивать свой рабочий набор до размера, равного максимальному рабочему набору. Когда же начинается нехватка памяти, диспетчер виртуальной памяти начинает урезать рабочий набор всех процессов до минимального, удаляя лишние страницы из физической памяти.

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

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

Текущие настройки файла подкачки

Посмотреть текущий размер файла можно в оснастке Свойства системы (System Properties). Для этого надо нажать Win+R и выполнить команду sysdm.cpl. Затем перейти на вкладку «Advanced», в поле «Performance» нажать на кнопку «Settings» и в открывшемся окне перейти на вкладку «Advanced».

Здесь указан суммарный размер файла подкачки на всех дисках, а по кнопке «Change» можно перейти к его настройкам.

текущий размер файла подкачки

По умолчанию включено автоматическое управление размером файла подкачки. Это значит, что операционная система создает один файл подкачки pagefile.sys в корне системного диска и устанавливает его размер автоматически, исходя из своих потребностей.

файл подкачки, настройки по умолчанию

Дамп памяти

Чтобы понять, чем руководствуется система при выборе размера файла подкачки, опять перейдем к теории и обратимся к такому понятию как дамп памяти (memory dump). Дело в том, что кроме расширения физической памяти файл подкачки имеет еще одно назначение — он используется при создании аварийных дампов памяти при сбоях системы. Происходит это следующим образом.

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

При следующей загрузке системы диспетчер сеанса (Session Manager Subsystem Service, SMSS) инициализирует файл подкачки и проверяет наличие в нем заголовка дампа. Если заголовок есть, то данные копируются из файла подкачки в файл аварийного дампа и делается соответствующая запись в системном журнале.

Соответственно при автоматическом управлении файлом подкачки система ориентируется на настройки создания аварийного дампа памяти, выбирая размер файла в соответствии с типом дампа:

• Полный дамп памяти (Complete memory dump) — в дамп записывается все содержимое оперативной памяти на момент сбоя, поэтому размер файла подкачки должен быть равен размеру физической памяти + 1Мб (для заголовка). Этот тип выбирается по умолчанию при количестве физической памяти меньше 4ГБ;
• Дамп памяти ядра (Kernel memory dump) —  в дамп записывается только память, выделенная для ядра ОС, драйверов устройств и приложений, работающих в режиме ядра. Дамп ядра занимает гораздо меньше места, чем полный дамп, при этом его как правило достаточно для определения причин сбоя. Этот тип дампа выбирается по умолчанию для систем с объемом ОЗУ 4ГБ и более. Минимальный размер файла подкачки должен составлять примерно 1/3 от объема физической памяти;
• Малый дамп памяти (Small memory dump) — мини-дамп, в котором содержатся минимально необходимые данные: стоп-код и описание ошибки, список загруженных драйверов и информация о запущенных в момент сбоя процессах. Этот дамп требует файл подкачки не менее 2Мб;
• Автоматический дамп памяти (Automatic memory dump) — новый тип дампа, появившийся в  Windows 8\Server 2012 и более новых. На самом деле это тот же дамп ядра, единственная разница в том, что он позволяет системе динамически управлять размером файла подкачки, выбирая наиболее оптимальный размер.

Настройки дампа памяти находятся в расширенных свойствах системы, в разделе Загрузка и восстановление (Startup and Recovery). Здесь можно один из четырех типов дампа либо совсем отключить его создание.

настройки дампа памяти

Даже зная настройки дампа и объем физической памяти, не получится точно сказать, какого размера файл подкачки создаст система. Поэтому я решил немного поэкспериментировать, для чего взял в качестве подопытных 2 системы — клиентскую Windows 8.1 (x64) и серверную Windows Server 2012 R2 и проверил, как размер файла подкачки зависит от объема физической памяти и настроек дампа. Вот что получилось:

Windows 8.1
4Гб ОЗУ
Windows 8.1
8Гб ОЗУ
Windows Server 2012 R2
4Гб ОЗУ
Windows Server 2012 R2
8Гб ОЗУ
Полный дамп  4352 Мб  8704 Мб  4352 Мб  8704 Мб
Дамп ядра  4096 Мб  8192 Мб  4096 Мб  8192 Мб
Автоматический дамп  704 Мб  1280 Мб  1408 Мб  1920 Мб
Малый дамп  320 Мб  512 Мб  1408 Мб  1920 Мб
Нет дампа  320 Мб  512 Мб  1408 Мб  1920 Мб

Как видите, размер файла напрямую зависит не только от объема ОЗУ и настроек дампа, но и от типа операционной системы. Кроме того, отключение дампа не означает полное отсутствие файла подкачки.

Также стоит напомнить, что это начальные значения. При нехватке виртуальной в процессе работы памяти система может увеличивать файл подкачки вплоть до максимального значения, которое при автоматической настройке составляет 3 объема физической памяти.

Определение необходимого размера файла подкачки

Хотя размером файла подкачки и можно управлять через настройки дампа памяти, однако это не самый прямой способ. Гораздо правильней настроить размер файла вручную. Остается только выяснить, какой размер можно считать достаточным.

Однозначного ответа на этот вопрос нет. Единственный способ более-менее точно установить размер файла подкачки  — это собрать в данной конкретной системе данные по потреблению памяти и использованию файла подкачки, выяснить, какой максимальный объем памяти может быть занят службами\приложениями и насколько реально используется файл подкачки. На основании полученных данных и следует выбирать размер файла.

Оперативно оценить текущее потребление виртуальной памяти можно в Task manager, в разделе Performance (производительность). В поле Commited показано отношение используемой виртуальной памяти к ее общему количеству. В моем примере на компьютере установлено 64Гб оперативной памяти и такого же объема файл подкачки. Текущий объем виртуальной памяти составляет 128Гб, занято 65Гб. Из них 62,4Гб приходятся на оперативную память и 2,6Гб на файл подкачки.

Диспетчер задач, вкладка Производительность

Также для сбора информации можно воспользоваться счетчиками производительности. Счетчики предоставляют больше информации, а также позволяют собрать статистику за определенное время, что позволит более точно определить потребности системы в виртуальной памяти. Нам потребуются следующие счетчики производительности:

Memory, Commited Bytes — этот счетчик показывает, какое количество байт в виртуальной памяти занято текущими процессами. Когда значение Commited Bytes превышает объем физической памяти, система начинает активно использовать файл подкачки;
Memory, Available Bytes — объем свободной физической памяти на компьютере. Этот параметр показывает загруженность оперативной памяти, а чем меньше физической памяти остается, тем активнее система использует файл подкачки.
Memory, Commit Limit — значение, равное сумме объема оперативной памяти и текущего размера файла подкачки. По другому  — максимальное количество виртуальной памяти, которое может быть выделено всем процессам без увеличения размера файла подкачки.
Memory, %Commited Bytes In Use — показывает процент использования виртуальной памяти. Представляет из себя отношение Commited Bytes \Commit Limit.
Paging File, %Usage — процент использования файла подкачки, текущее значение.
Paging File, %Usage Peak — процент использования файла подкачки, пиковое значение.

Для более глубокого анализа потребления памяти можно дополнительно использовать такие счетчики:

Memory, Page Fault\sec — количество страничных ошибок (прерываний) в секунду при обращении к страницам памяти. Напомню, что страничное прерывание возникает при обращении к странице памяти, которая была выгружена на диск.
Memory, Pages\sec — показывает, сколько страниц в секунду было прочитано\записано в рамках страничного прерывания.  Проще говоря, этот счетчик показывает интенсивность обмена данными между оперативной памятью и файлом подкачки. Представляет из себя сумму счетчиков Pages Input\sec  и Pages Outpit\sec.
Process, Working Set — показывает текущее использование физической памяти активными процессами. Значение Total выдает суммарный объем по всем процессам, но можно вывести данные отдельно и по каждому конкретному процессу. Этот счетчик не имеет прямого отношения к файлу подкачки, но может помочь при диагностике проблем с производительностью.

счетчики производительности для файла подкачки

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

Отдельно стоит упомянуть о выборе размера файла подкачки для компьютеров с ролью Hyper-V.  Дело в том, что в силу особенностей архитектуры гипервизор не использует файл подкачки для виртуальных машин даже в случае нехватки физической памяти. На серверах Hyper-V файл подкачки нужен исключительно для целей хостовой системы, в которой используется лишь небольшая часть ОЗУ (обычно не более 2-4ГБ). Поэтому создавать файл подкачки, исходя из общего объема физической памяти в данном случае абсолютно бессмысленно.

Настройка

Определив необходимый размер, переходим непосредственно о настройке. Для изменения размера файла подкачки открываем свойства виртуальной памяти и отключаем автоматический выбор размера. Затем в поле «Drive» выбираем логический диск, на котором будет располагаться файл, выбираем опцию «Custom size», указываем начальный и максимальный размер файла подкачки и жмем «Set». Для того, чтобы изменения вступили в силу, после настройки может потребоваться перезагрузка системы.

Для файла подкачки существуют некоторые ограничения:

• Максимальный размер файла может быть не более 16ТБ для 64-битной и не более 4ГБ для 32-битной системы;
• Можно создавать до 16 файлов подкачки, но каждый должен быть расположен на отдельном томе (логическом диске);
• Для возможности создания аварийного дампа памяти необходимо, чтобы файл подкачки (хотя бы один) находился на системном диске.

изменение настроек файла подкачки

Для автоматизации процесса настройки можно использовать вот такой PowerShell скрипт (подставив свои значения):

# Disable automatic management for pagefile
$ComputerSystem = Get-WmiObject -Class Win32_ComputerSystem -EnableAllPrivileges
if ($ComputerSystem.AutomaticManagedPagefile) {
$ComputerSystem.AutomaticManagedPagefile = $false
$ComputerSystem.Put()
}
# Set manual size for pagefile
$PageFile = Get-WmiObject -Class Win32_PageFileSetting -EnableAllPrivileges
$PageFile.InitialSize = 4096
$PageFile.MaximumSize = 8192
$PageFile.Put()

Заключение

В заключение некоторые практические советы, которые могут помочь в настройке.

• При ручной настройке необходимо указать начальный и максимальный размер файла. В этом случае система создает файл начального размера, при необходимости увеличивая его до тех пор, пока он не достигнет максимального. При увеличении размера возможна фрагментация файла подкачки, что скажется на его быстродействии. Для борьбы с фрагментацией можно изначально указать начальный и максимальный размер одинаковыми. Тогда система сразу выделит под файл все необходимое место, а статический размер файла исключит возможную фрагментацию в дальнейшем.
• Для увеличения производительности системы файл подкачки можно перенести на другой раздел. Уточню, что переносить файл стоит только на раздел, находящийся на другом физическом диске. Размещение файла подкачки на дополнительном раздел одного и того же диска не приведет к повышению быстродействия. На практике имеет смысл перенос файла подкачки на отдельный SSD-диск, это может дать заметный прирост производительности.
• Еще один теоретический 🙂 способ повысить скорость работы с файлом подкачки — разместить его на отдельном, специально выделенном только под него разделе, для которого установить размер кластера 64Кб (вместо 4Кб по умолчанию). При работе с большими файлами (такими, как файл подкачки) большой размер кластера может повысить производительность файловой системы. Чем больше размер кластера, тем большими блоками читаются\пишутся данные, соответственно для одинакового объема данных при размере кластера 64Кб потребуется в 16 раз меньше операций чтения\записи, чем для 4Кб.
• Кое где встречаются советы полностью отключить файл подкачки. Действительно, в отдельных случаях это может дать некоторый прирост производительности, хотя лично я не вижу в этом большой пользы. Как можно убедиться с помощью счетчиков производительности, при наличии свободной физической памяти ОС и так использует файл подкачки по минимуму, поэтому прирост будет незначительный. Если же при отключенном файле подкачки в процессе работы закончится физическая память, то приложение, потребляющее память, будет остановлено, что чревато сбоем в работе и потерей данных. Кроме того, при отсутствии файла подкачки Windows не сможет сохранить дамп памяти в случае сбоя.
• И последнее. Манипуляции с файлом подкачки не особо сильно влияют на производительность системы в целом. Повторюсь, при достаточном количестве физической памяти файл подкачки используется по минимуму. Если же в системе постоянно не хватает памяти и она активно использует файл подкачки, то в первую очередь стоит подумать о расширении физической памяти.

We have several machines running Windows Server 2012 and we wanted to disable the paging file using Group Policy.  It took a while to find the answer but I got it working and I wanted to share with you how this is done.  First of all, to do this
manually, you would need to follow these steps:

1)Right-click Computer, select Properties.

2)Click on Advanced System Properties

3)Choose the Advanced tab

4)Under Performance, click the Settings… button

5)Choose the Advanced tab

6)Under Virtual Memory, click the Change… button

7)Choose No paging file

Obviously this process is cumbersome just for one system let alone a dozen or more.  To take care of this automatically using Group Policy, you will need to do the following:

1)Create a GPO, then go to the Group Policy Management Editor

2)Navigate to Computer Configuration>Preferences>Windows Settings>Registry

3)Create a new registry item using the following settings:

a: Action: Replace

b: Hive: HKEY_LOCAL_MACHINE

c: Key Path: SYSTEMCurrentControlSetControlSession ManagerMemory Management

d: Value Name: PagingFiles (do not check the Default option)

e: Value type: REG_MULTI_SZ

f: Value data: 0x10000

There is no specific setting in group policy to disable the paging file, so you must instead follow these procedures to allow group policy to modify a registry key in Windows.  I tested it out on a Windows 7 computer and a Server 2012 machine. 
No reboot was required, just a simple gpupdate /force command in CMD.  Good luck, and don’t forget to test it first!  Not all systems or environments are created equal.

tags: page file, paging file, virtual memory, pagefile, pagingfile, virtualmemory, pagingfiles

We have several machines running Windows Server 2012 and we wanted to disable the paging file using Group Policy.  It took a while to find the answer but I got it working and I wanted to share with you how this is done.  First of all, to do this
manually, you would need to follow these steps:

1)Right-click Computer, select Properties.

2)Click on Advanced System Properties

3)Choose the Advanced tab

4)Under Performance, click the Settings… button

5)Choose the Advanced tab

6)Under Virtual Memory, click the Change… button

7)Choose No paging file

Obviously this process is cumbersome just for one system let alone a dozen or more.  To take care of this automatically using Group Policy, you will need to do the following:

1)Create a GPO, then go to the Group Policy Management Editor

2)Navigate to Computer Configuration>Preferences>Windows Settings>Registry

3)Create a new registry item using the following settings:

a: Action: Replace

b: Hive: HKEY_LOCAL_MACHINE

c: Key Path: SYSTEMCurrentControlSetControlSession ManagerMemory Management

d: Value Name: PagingFiles (do not check the Default option)

e: Value type: REG_MULTI_SZ

f: Value data: 0x10000

There is no specific setting in group policy to disable the paging file, so you must instead follow these procedures to allow group policy to modify a registry key in Windows.  I tested it out on a Windows 7 computer and a Server 2012 machine. 
No reboot was required, just a simple gpupdate /force command in CMD.  Good luck, and don’t forget to test it first!  Not all systems or environments are created equal.

tags: page file, paging file, virtual memory, pagefile, pagingfile, virtualmemory, pagingfiles

1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:configuring-windows-paging-file-on-sql-server

К настройке файла подкачки Windows нужно подходить индивидуально в каждом отдельном случае. Общие рекомендации по этому поводу можно найти в статье KB2860880 — Определение размера файла подкачки для 64-разрядных версий Windows. Так как на серверах с СУБД SQL Server зачастую используется большой объём оперативной памяти, может потребоваться настройка ограничения размера файла подкачки. Это связано с тем, что автоматически рассчитываемый ОС Windows размер файла даже при полном отсутствии нагрузки на систему на только что установленной системе может оказаться крайне нескромным.

Вызовем апплет управления свойствами системы sysdm.cpl. В открывшейся форме переходим на закладку управления расширенными настройками Advanced и в блоке Performance нажимаем кнопку Settings. В дополнительно открывшейся форме переходим на вкладку Advanced и в разделе Virtual memory используем кнопку Change, чтобы изменить параметры файла подкачки.

Отключим используемое по умолчанию автоматическое определение размера файла подкачки, укажем первичный (Initial size) и максимально допустимый (Maximum size) размеры файла через опцию Custom size (например, от 2GB, но не больше 4GB) и нажмём Set, затем OK.

Устанавливая файл подкачки ограниченного размера следуют выполнять дальнейший контроль процента его использования, чтобы не получилось так, что системе под продуктивными нагрузками на самом деле требуется больший объём подкачки, чем установлен. Следить за этим показателем можно с помощью консоли Performance Monitor и счётчиков производительности:

  • Paging File — % Usage

  • Paging File — % Usage Peak

После добавления визуализации указанных счётчиков в нашем примере становится видно, что текущее использование файла подкачки на нулевом уровне.

Так как в системах Windows Server 2012 и выше на размер файла подкачки влияют требования, выставляемые к аварийному дампу системы (memory.dmp), мы можем сократить эти требования за счёт изменения параметров создания аварийного дампа. Для этого в том же апплете управления свойствами системы sysdm.cpl на закладке управления расширенными настройками Advanced в блоке Startup and Recovery нажимаем кнопку Settings. В открывшейся форме в разделе System failure вместо Automatic memory dump выбираем Small memory dump


Дополнительные источники информации:


Проверено на следующих конфигурациях:

Версия ОС
Microsoft Windows Server 2012 R2 Standard EN (6.3.9600)

Автор первичной редакции:
Алексей Максимов
Время публикации: 10.02.2019 20:51

1c/setting-up-microsoft-sql-server-for-1c-enterprise-8-3/configuring-windows-paging-file-on-sql-server.txt

· Последнее изменение: 10.02.2019 21:20 —

Алексей Максимов


Вопрос о размере файла подкачки довольно часто встречается на различных технических ресурсах, однако однозначных рекомендаций на этот счет нет. Попадаются как советы установить файл подкачки в 1.5-2 раза больше объема установленной памяти, так и полностью отключить его. И то и другое абсолютно бессмысленно с практической точки зрения. Поэтому сегодня речь пойдет о том, что такое файл подкачки (он же своп-файл, он же страничный файл) и как правильно выбрать и настроить его размер.

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

Виртуальная память

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

Операционная система Windows работает не с физической, а именно с виртуальной памятью. Технически виртуальная память состоит из физической памяти (ОЗУ) и специального файла(-ов) подкачки, объединенных в единое виртуальное адресное пространство. Для каждого запущенного процесса выделяется собственное, отдельное от других процессов адресное пространство в виртуальной памяти, в котором он выполняется и которым управляет. Для обращения к памяти используются указатели на адреса в виртуальном адресном пространстве, при этом сам процесс не в курсе 🙂 того, где именно хранятся его данные — в ОЗУ или в файле, это решает операционная система.

Максимально возможный объем доступной виртуальной памяти зависит от разрядности операционной системы. Так в 32-разрядной системе процесс может адресовать не более 4 гигабайт (232) памяти. Для 64-разрядного процесса теоретическое ограничение составляет 16 экзабайт (264), а практически в современных 64-разрядных версиях Windows поддерживается адресное пространство объемом до 16 терабайт.

Примечание. Некоторые 32-разрядные версии Windows Server используют технологию PAE, позволяющую адресовать до 64ГБ памяти. Подробнее о PAE можно узнать здесь.

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

Управление памятью происходит примерно так.

Виртуальное адресное пространство поделено на блоки равного размера, которые называют страницами (pages). Отсюда кстати и название pagefile — страничный файл. Физическая память также поделена на разделы, называемые страничными фреймами (page frames), которые используются для хранения страниц.

Каждому процессу при старте выделяется ″кусок″ адресного пространства в виртуальной памяти. Соответственно в каждый момент времени в памяти находятся страницы из виртуального адресного пространства каждого процесса. Страницы, находящиеся в физической памяти и доступные немедленно, называются действительными (valid pages), а страницы, которые в данный момент недоступны, например находящиеся на диске — недействительными (invalid pages).

При обращении процесса к странице памяти, помеченной как недействительная, происходит страничное прерывание (page fault). При возникновении прерывания диспетчер виртуальной памяти находит запрашиваемую страницу и загружает ее в свободный страничный фрейм физической памяти. Собственно этот процесс и называется подкачкой (paging).

При дефиците физической памяти диспетчер памяти выбирает фреймы, которые можно освободить и переносит их содержимое на диск, в файл подкачки. Принцип переноса такой: когда процесс использовал все выделенные ему фреймы, то при каждом страничном прерывании в этом процессе система удаляет из физической памяти одну из его страниц. Выбор страницы осуществляется по принципу первым пришел — первым ушел (first in, first out, FIFO), т.е. в файл подкачки переносится страница, дольше всех находившаяся в памяти.

У каждого процесса есть свой рабочий набор (working set) — набор страниц, находящихся в физической памяти. Рабочий набор определяет размер физической памяти, выделенной процессу, он имеет минимальный и максимальный размер. В момент запуска процессу назначается минимальный размер рабочего набора, т.е. минимальное количество страниц, которые гарантированно будут находится в оперативной памяти. При достаточном количестве свободной физической памяти процесс может увеличивать свой рабочий набор до размера, равного максимальному рабочему набору. Когда же начинается нехватка памяти, диспетчер виртуальной памяти начинает урезать рабочий набор всех процессов до минимального, удаляя лишние страницы из физической памяти.

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

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

Текущие настройки файла подкачки

Посмотреть текущий размер файла можно в оснастке Свойства системы (System Properties). Для этого надо нажать Win+R и выполнить команду sysdm.cpl. Затем перейти на вкладку «Advanced», в поле «Performance» нажать на кнопку «Settings» и в открывшемся окне перейти на вкладку «Advanced».

Здесь указан суммарный размер файла подкачки на всех дисках, а по кнопке «Change» можно перейти к его настройкам.

текущий размер файла подкачки

По умолчанию включено автоматическое управление размером файла подкачки. Это значит, что операционная система создает один файл подкачки pagefile.sys в корне системного диска и устанавливает его размер автоматически, исходя из своих потребностей.

файл подкачки, настройки по умолчанию

Дамп памяти

Чтобы понять, чем руководствуется система при выборе размера файла подкачки, опять перейдем к теории и обратимся к такому понятию как дамп памяти (memory dump). Дело в том, что кроме расширения физической памяти файл подкачки имеет еще одно назначение — он используется при создании аварийных дампов памяти при сбоях системы. Происходит это следующим образом.

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

При следующей загрузке системы диспетчер сеанса (Session Manager Subsystem Service, SMSS) инициализирует файл подкачки и проверяет наличие в нем заголовка дампа. Если заголовок есть, то данные копируются из файла подкачки в файл аварийного дампа и делается соответствующая запись в системном журнале.

Соответственно при автоматическом управлении файлом подкачки система ориентируется на настройки создания аварийного дампа памяти, выбирая размер файла в соответствии с типом дампа:

• Полный дамп памяти (Complete memory dump) — в дамп записывается все содержимое оперативной памяти на момент сбоя, поэтому размер файла подкачки должен быть равен размеру физической памяти + 1Мб (для заголовка). Этот тип выбирается по умолчанию при количестве физической памяти меньше 4ГБ;
• Дамп памяти ядра (Kernel memory dump) —  в дамп записывается только память, выделенная для ядра ОС, драйверов устройств и приложений, работающих в режиме ядра. Дамп ядра занимает гораздо меньше места, чем полный дамп, при этом его как правило достаточно для определения причин сбоя. Этот тип дампа выбирается по умолчанию для систем с объемом ОЗУ 4ГБ и более. Минимальный размер файла подкачки должен составлять примерно 1/3 от объема физической памяти;
• Малый дамп памяти (Small memory dump) — мини-дамп, в котором содержатся минимально необходимые данные: стоп-код и описание ошибки, список загруженных драйверов и информация о запущенных в момент сбоя процессах. Этот дамп требует файл подкачки не менее 2Мб;
• Автоматический дамп памяти (Automatic memory dump) — новый тип дампа, появившийся в  Windows 8Server 2012 и более новых. На самом деле это тот же дамп ядра, единственная разница в том, что он позволяет системе динамически управлять размером файла подкачки, выбирая наиболее оптимальный размер.

Настройки дампа памяти находятся в расширенных свойствах системы, в разделе Загрузка и восстановление (Startup and Recovery). Здесь можно один из четырех типов дампа либо совсем отключить его создание.

настройки дампа памяти

Даже зная настройки дампа и объем физической памяти, не получится точно сказать, какого размера файл подкачки создаст система. Поэтому я решил немного поэкспериментировать, для чего взял в качестве подопытных 2 системы — клиентскую Windows 8.1 (x64) и серверную Windows Server 2012 R2 и проверил, как размер файла подкачки зависит от объема физической памяти и настроек дампа. Вот что получилось:

Windows 8.1
4Гб ОЗУ
Windows 8.1
8Гб ОЗУ
Windows Server 2012 R2
4Гб ОЗУ
Windows Server 2012 R2
8Гб ОЗУ
Полный дамп  4352 Мб  8704 Мб  4352 Мб  8704 Мб
Дамп ядра  4096 Мб  8192 Мб  4096 Мб  8192 Мб
Автоматический дамп  704 Мб  1280 Мб  1408 Мб  1920 Мб
Малый дамп  320 Мб  512 Мб  1408 Мб  1920 Мб
Нет дампа  320 Мб  512 Мб  1408 Мб  1920 Мб

Как видите, размер файла напрямую зависит не только от объема ОЗУ и настроек дампа, но и от типа операционной системы. Кроме того, отключение дампа не означает полное отсутствие файла подкачки.

Также стоит напомнить, что это начальные значения. При нехватке виртуальной в процессе работы памяти система может увеличивать файл подкачки вплоть до максимального значения, которое при автоматической настройке составляет 3 объема физической памяти.

Определение необходимого размера файла подкачки

Хотя размером файла подкачки и можно управлять через настройки дампа памяти, однако это не самый прямой способ. Гораздо правильней настроить размер файла вручную. Остается только выяснить, какой размер можно считать достаточным.

Однозначного ответа на этот вопрос нет. Единственный способ более-менее точно установить размер файла подкачки  — это собрать в данной конкретной системе данные по потреблению памяти и использованию файла подкачки, выяснить, какой максимальный объем памяти может быть занят службамиприложениями и насколько реально используется файл подкачки. На основании полученных данных и следует выбирать размер файла.

Оперативно оценить текущее потребление виртуальной памяти можно в Task manager, в разделе Performance (производительность). В поле Commited показано отношение используемой виртуальной памяти к ее общему количеству. В моем примере на компьютере установлено 64Гб оперативной памяти и такого же объема файл подкачки. Текущий объем виртуальной памяти составляет 128Гб, занято 65Гб. Из них 62,4Гб приходятся на оперативную память и 2,6Гб на файл подкачки.

Диспетчер задач, вкладка Производительность

Также для сбора информации можно воспользоваться счетчиками производительности. Счетчики предоставляют больше информации, а также позволяют собрать статистику за определенное время, что позволит более точно определить потребности системы в виртуальной памяти. Нам потребуются следующие счетчики производительности:

Memory, Commited Bytes — этот счетчик показывает, какое количество байт в виртуальной памяти занято текущими процессами. Когда значение Commited Bytes превышает объем физической памяти, система начинает активно использовать файл подкачки;
Memory, Available Bytes — объем свободной физической памяти на компьютере. Этот параметр показывает загруженность оперативной памяти, а чем меньше физической памяти остается, тем активнее система использует файл подкачки.
Memory, Commit Limit — значение, равное сумме объема оперативной памяти и текущего размера файла подкачки. По другому  — максимальное количество виртуальной памяти, которое может быть выделено всем процессам без увеличения размера файла подкачки.
Memory, %Commited Bytes In Use — показывает процент использования виртуальной памяти. Представляет из себя отношение Commited Bytes Commit Limit.
Paging File, %Usage — процент использования файла подкачки, текущее значение.
Paging File, %Usage Peak — процент использования файла подкачки, пиковое значение.

Для более глубокого анализа потребления памяти можно дополнительно использовать такие счетчики:

Memory, Page Faultsec — количество страничных ошибок (прерываний) в секунду при обращении к страницам памяти. Напомню, что страничное прерывание возникает при обращении к странице памяти, которая была выгружена на диск.
Memory, Pagessec — показывает, сколько страниц в секунду было прочитанозаписано в рамках страничного прерывания.  Проще говоря, этот счетчик показывает интенсивность обмена данными между оперативной памятью и файлом подкачки. Представляет из себя сумму счетчиков Pages Inputsec  и Pages Outpitsec.
Process, Working Set — показывает текущее использование физической памяти активными процессами. Значение Total выдает суммарный объем по всем процессам, но можно вывести данные отдельно и по каждому конкретному процессу. Этот счетчик не имеет прямого отношения к файлу подкачки, но может помочь при диагностике проблем с производительностью.

счетчики производительности для файла подкачки

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

Отдельно стоит упомянуть о выборе размера файла подкачки для компьютеров с ролью Hyper-V.  Дело в том, что в силу особенностей архитектуры гипервизор не использует файл подкачки для виртуальных машин даже в случае нехватки физической памяти. На серверах Hyper-V файл подкачки нужен исключительно для целей хостовой системы, в которой используется лишь небольшая часть ОЗУ (обычно не более 2-4ГБ). Поэтому создавать файл подкачки, исходя из общего объема физической памяти в данном случае абсолютно бессмысленно.

Настройка

Определив необходимый размер, переходим непосредственно о настройке. Для изменения размера файла подкачки открываем свойства виртуальной памяти и отключаем автоматический выбор размера. Затем в поле «Drive» выбираем логический диск, на котором будет располагаться файл, выбираем опцию «Custom size», указываем начальный и максимальный размер файла подкачки и жмем «Set». Для того, чтобы изменения вступили в силу, после настройки может потребоваться перезагрузка системы.

Для файла подкачки существуют некоторые ограничения:

• Максимальный размер файла может быть не более 16ТБ для 64-битной и не более 4ГБ для 32-битной системы;
• Можно создавать до 16 файлов подкачки, но каждый должен быть расположен на отдельном томе (логическом диске);
• Для возможности создания аварийного дампа памяти необходимо, чтобы файл подкачки (хотя бы один) находился на системном диске.

изменение настроек файла подкачки

Для автоматизации процесса настройки можно использовать вот такой PowerShell скрипт (подставив свои значения):

# Disable automatic management for pagefile
$ComputerSystem = Get-WmiObject -Class Win32_ComputerSystem -EnableAllPrivileges
if ($ComputerSystem.AutomaticManagedPagefile) {
$ComputerSystem.AutomaticManagedPagefile = $false
$ComputerSystem.Put()
}
# Set manual size for pagefile
$PageFile = Get-WmiObject -Class Win32_PageFileSetting -EnableAllPrivileges
$PageFile.InitialSize = 4096
$PageFile.MaximumSize = 8192
$PageFile.Put()

Заключение

В заключение некоторые практические советы, которые могут помочь в настройке.

• При ручной настройке необходимо указать начальный и максимальный размер файла. В этом случае система создает файл начального размера, при необходимости увеличивая его до тех пор, пока он не достигнет максимального. При увеличении размера возможна фрагментация файла подкачки, что скажется на его быстродействии. Для борьбы с фрагментацией можно изначально указать начальный и максимальный размер одинаковыми. Тогда система сразу выделит под файл все необходимое место, а статический размер файла исключит возможную фрагментацию в дальнейшем.
• Для увеличения производительности системы файл подкачки можно перенести на другой раздел. Уточню, что переносить файл стоит только на раздел, находящийся на другом физическом диске. Размещение файла подкачки на дополнительном раздел одного и того же диска не приведет к повышению быстродействия. На практике имеет смысл перенос файла подкачки на отдельный SSD-диск, это может дать заметный прирост производительности.
• Еще один теоретический 🙂 способ повысить скорость работы с файлом подкачки — разместить его на отдельном, специально выделенном только под него разделе, для которого установить размер кластера 64Кб (вместо 4Кб по умолчанию). При работе с большими файлами (такими, как файл подкачки) большой размер кластера может повысить производительность файловой системы. Чем больше размер кластера, тем большими блоками читаютсяпишутся данные, соответственно для одинакового объема данных при размере кластера 64Кб потребуется в 16 раз меньше операций чтениязаписи, чем для 4Кб.
• Кое где встречаются советы полностью отключить файл подкачки. Действительно, в отдельных случаях это может дать некоторый прирост производительности, хотя лично я не вижу в этом большой пользы. Как можно убедиться с помощью счетчиков производительности, при наличии свободной физической памяти ОС и так использует файл подкачки по минимуму, поэтому прирост будет незначительный. Если же при отключенном файле подкачки в процессе работы закончится физическая память, то приложение, потребляющее память, будет остановлено, что чревато сбоем в работе и потерей данных. Кроме того, при отсутствии файла подкачки Windows не сможет сохранить дамп памяти в случае сбоя.
• И последнее. Манипуляции с файлом подкачки не особо сильно влияют на производительность системы в целом. Повторюсь, при достаточном количестве физической памяти файл подкачки используется по минимуму. Если же в системе постоянно не хватает памяти и она активно использует файл подкачки, то в первую очередь стоит подумать о расширении физической памяти.

После появления C диск не хватает места, вам следует сделать что-то как можно быстрее, иначе сервер может неожиданно зависнуть или перезагрузиться. Чтобы решить эту проблему, первое, что вам нужно сделать, это освобождение дискового пространства, тогда сервер может продолжать работать без проблем. Кроме того, появится больше свободного места для установки программ, помогающих решить эту проблему. Чтобы освободить место на диске в Server 2012 R2, вы можете либо использовать Windows родная утилита очистки диска или стороннее программное обеспечение для оптимизации системы. Если вы не можете получить достаточно свободного места после очистки диска, вам лучше добавить больше свободного места на диск C: из другого раздела.

Содержание:

  1. Как освободить место на диске с Server 2012 Инструмент очистки диска
  2. Дополнительные методы для освобождения места в Windows Server 2012
  3. Добавить больше свободного места на диск C: из другого раздела

Освободить место на диске

1. Как освободить место на диске с помощью Server 2012 Инструмент очистки диска

То же самое с другими версиями, Windows Server 2012 имеет встроенную утилиту очистки диска. Он способен быстро и безопасно удалять наиболее распространенные типы ненужных и ненужных файлов. Нет необходимости запускать стороннее программное обеспечение, чтобы освободить место на диске в Windows Сервер 2012

Шаги, чтобы освободить дисковое пространство в Windows Server 2012 R2 с инструментом очистки диска:

Шаг 1: Нажмите Windows + R на клавиатуре введите cleanmgr и нажмите Enter.

Шаг 2: Выберите C: диск в раскрывающемся списке и нажмите OK.

Select C drive

Шаг 3: Выберите файлы, которые вы хотите удалить в следующем окне. После нажатия кнопки «ОК» программа очистки диска попросит вас подтвердить.

Select files

Мой тестовый сервер установлен недавно, поэтому я могу освободить немного места. Серверам, которые никогда или давно не освобождали дисковое пространство, Server 2012 Утилита очистки диска может помочь вам восстановить несколько гигабайт дискового пространства. Если вы хотите получить больше свободного места, вы можете попробовать дополнительные шаги, описанные ниже.

2. Дополнительные методы для освобождения места в Windows Server 2012 R2:

Удаление программ и функций

Нажмите Windows и X на клавиатуре выберите Программы и компонентыщелкните правой кнопкой мыши элемент, который вы хотите удалить, и нажмите Удалить.

Сбросить корзину

Все файлы, которые были удалены нажатием клавиши DEL без клавиши SHIFT, попадут в корзину, где вы можете вручную вернуть эти файлы в исходное местоположение, если удалили их по ошибке. Когда диск системы C почти заполнен, вы можете уменьшить использование дискового пространства или изменить расположение корзины на другой том. шаги:

  1. Щелкните правой кнопкой мыши Корзина на рабочем столе и нажмите Объявления.
  2. Выберите диск для корзины.
  3. Выберите Размер клиента и введите сумму.

Сброс файла подкачки

Файл подкачки использует часть дискового пространства в качестве виртуальной RAM и по умолчанию находится на диске C. Вы можете уменьшить его или поменять на другой раздел, шаги:

  1. Нажмите Windows и R на клавиатуре, чтобы запустить Run.
  2. Тип sysdm.cpl ,3 и нажмите Enter.
  3. Нажмите Настройки под выступлением в Дополнительно меню.
  4. Нажмите Изменить под виртуальной памятью.
  5. Снимите флажок Автоматически управлять размером файла подкачки для всех дисков в верхней части.
  6. Выберите D: или другой диск, введите количество начального размера и максимального размера в Размер клиента переключатель, а затем нажмите Поставьте.
  7. Выберите C: диск и выберите Нет файла подкачки переключатель, затем нажмите Set.
  8. Нажмите OK.

Set Page File

Изменить настройки по умолчанию

Если вы установили программы или используете некоторые Windows services с настройками по умолчанию, вы можете изменить путь вывода на другие разделы. Если там есть файлы, перейдите в другой раздел.

Если вы выполните поиск в Google, вы найдете другие решения, которые помогут освободить дисковое пространство в Windows Server 2012 (р2). Конечно, вы можете попробовать их все, если у вас достаточно времени. Но в большинстве случаев вышеперечисленные способы достаточно быстрые и эффективные. Если вам нужно больше свободного места на диске C, лучше всего перенести его с других разделов.

3. Добавьте больше свободного места на диск C: из другого раздела или диска

Если ваш системный диск C: создан маленьким или вы не можете получить много свободного места после перепробования многих методов, вам лучше добавить больше свободного места на диске C из других разделов. Это означает, что нужно сжать другие разделы, чтобы освободить место, а затем перенести их на диск C. Таким образом, операционная система, программы и связанные с ними настройки, а также все остальное остаются прежними.

Скачать NIUBI Partition Editor и следуйте инструкциям в видео, чтобы добавить больше места на диске C:

Video guide

Если вы используете какие-либо аппаратные RAID-массивы, такие как RAID 1/5/6/10, или запускаете Server 2012 в VMware/Hyper-V выполните те же действия, разницы нет. Помимо сжатия и расширения раздела, это программное обеспечение поможет вам объединить, преобразовать, дефрагментировать, стереть раздел, оптимизировать файловую систему, сканировать поврежденные сектора и многое другое.

Если на том же диске нет другого раздела данных или недостаточно свободного места, вы можете клонировать диск на больший. На этом этапе вы можете увеличить диск C: (и другие разделы) за счет дополнительного дискового пространства. Следуйте инструкциям в видео:

Video guide

Новые ненужные файлы генерируются постоянно, вам лучше расширить диск C как можно больше и запустить Server 2012 Утилита очистки диска для ежемесячного освобождения места на диске.

По запросу в любой поисковой системе «файл подкачки windows» можно получить тысячу-другую скопированных друг у друга, либо немного отличающихся ответов по выбору оптимальных размеров для pagefile.sys.

Самые распространенные советы выглядят примерно следующим образом: для машин с маленьким ОЗУ нужно задавать размер файла подкачки k*RAM, где RAM — объем физической памяти, k — какой-нибудь коэффициент, коих много самых разнообразных. И 1,5, и 2, и даже 3 встречал. Если же планок памяти стоит на 4Гб и больше, то «смело отключайте виртуальную память в принципе».

Статья о том, стоит ли верить ли этим советам, и если да, то насколько.

Что такое файл подкачки?

pagefile.sys, он же файл подкачки — файл, представляющий собой виртуальную память, которая позволяет одновременно выполняться большому количеству процессов, которые все сразу не смогли бы поместиться в физической памяти.
По умолчанию после установки Windows файл подкачки увеличивается автоматически при заполнении текущего объема.

Если отключить файл подкачки

Если попытаться отключить файл подкачки в windows 7, система выдаст предупреждающее окно, в котором сообщит о неприятных последствиях:

Отсюда следует, что не стоит полностью отказываться от использования виртуальной памяти, иначе в случае краха не получится даже проанализировать причину сбоя. Указанный на скриншоте минимальный размер в 1МБ берется из расчета конфигурации дампа памяти в настройках «загрузка и восстановление»:

Если выбрать для записи отладочной информации полный дамп, то размер увеличивается на несколько порядков. У меня он составил 400МБ.

Кроме отсутствия возможности записи дампа, после отключения файла подкачки может появится назойливое сообщение о нехватке памяти. Появление его будет сопровождаться жуткими тормозами ресурсоемких приложений.

Если перенести файл подкачки на другой раздел

Куча статей по оптимизации вашей ОС рекомендует перенести файл подкачки на отдельно созданный и отформатированный в FAT32 раздел жесткого диска. При этом повышается быстродействие и уменьшается фрагментация этого файла.

При подобных манипуляциях не стоит забывать, что файл подкачки должен присутствовать в системном разделе для корректной записи отладочной информации. Выбирать приходится между быстродействием и возможностью сбора данных о возникших неприятностях.

Размер файла подкачки

Вернемся

к нашим апельсинам

к вопросу об оптимальном размере. Перекопав множество статей, информационных изданий и даже рекомендации Microsoft, я так и не нашел четкого и однозначного ответа на этот вопрос. Да и не нашел бы, как стало мне ясно после прочтения перевода статьи Марка Руссиновича Преодолевая ограничения Windows: виртуальная память. В заключении приведу ссылки на перевод и оригинал, а сейчас постараюсь объяснить, откуда же взять размер файла.

Для начала потребуется утилита Process Explorer, она является бесплатным аналогом дефолтного Task Manager’a, но обладает многими преимуществами. Скачать можно по ссылке.

После запуска Process Explorer’a выберите самые ресурсоемкие в плане используемой памяти приложения, которые используете в повседневной жизни, и запустите их все одновременно. В окне Process Explorer’a нажмите CTRL+I или выберите в меню View/System Information, из всего многообразия представленных в окне данных нужно выбрать область Commit Charge

Значение Peak — пиковое значение выделенной памяти для всех приложений, складываемое из физической и виртуальной памяти.

Далее вооружаемся калькулятором и вычитаем из этого значения размер оперативной памяти. Если получается отрицательное значение — берем требуемые системой 400МБ (может быть другое значение), необходимые для создания дампа. Если получается положительное значение — выставляем таким минимальное и максимальное значение файла подкачки. Можно подстраховаться и установить «про запас» максимум выше, но тогда вырастет фрагментация файла в случае увеличения его размеров. Поэтому лучше зафиксировать на одном месте.

Литература

Статья Марка Руссиновича Pushing the Limits of Windows: Virtual Memory;
Перевод на русский язык Преодолевая ограничения Windows: виртуальная память;
Описание программы Process Explorer .

С появлением динамической памяти Hyper-V в Windows Server 2008 R2 Service Pack 1 в блоге Russia Windows Virtualization Discussion был опубликован цикл заметок, детально

описывающий архитектуру, отдельно была отмечена возможности установки
минимального значения памяти для виртуальной машины, вдобавок к стартовому и максимальному значению и как его настраивать через PowerShell.

Минимальное значение памяти

Если в Hyper-V R2 SP1 для настройки минимального значения памяти требовалось использовать PowerShell (что делало не более пяти процентов администраторов), то в Windows Server 8 Hyper-V настройка минимального значения динамической памяти вынесена на главный
экран настроек памяти. Зачем?

Зачастую неизвестно точно, сколько памяти требуется ОС и приложениям для работы. Мало кто настраивает стартовое значение меньше 1-2 ГБ, боясь, что сервер будет медленно работать, что SQL запустится некорректно и так далее. А в реалии оказывается, что Guest
Memory Pressure виртуальной машины (описание доступно в той же заметке про архитектуру) составляет порядка 40-50%, то есть половина памяти, выделенной гипервизором
машине, реально не используется. Введя минимальное значение памяти, мы указываем гипервизору забирать неиспользуемый объём памяти у машины после того как она полностью загрузится. Это особо полезно в случае, когда часть машин используются для дела время от
времени, а остальное время они просто простаивают в запущенном состоянии. Если они не используют память активно, а она требуется другим машинам, гипервизор распределит её согласно приоритетам.

Изменение
минимального и максимального значения для запущенной машины

Заголовок, в принципе, всё рассказал. Гипервизор в Windows Server 8 позволяет увеличить максимальное значение и уменьшить минимальное значение для запущенной машины. Если вы когда-то указали для виртуальной машины с SQL Server максимум в 8 ГБ, а со временем
добавили туда важные базы данных, вы сможете без перезагрузки машины увеличить максимальный объём динамической памяти, так что машина возьмёт требуемое без остановки сервисов.

Hyper-V Smart Paging

Очень тонкая тема для обсуждения – новая технология Smart Paging. В редких случаях гипервизор сможет использовать файл подкачки на узле виртуализации для запуска машин при нехватке физической памяти. Звучит как-то знакомо и некрасиво? Попробуем разобраться.

Введя возможность настроить минимальное значение динамической памяти ниже стартового, Microsoft позволяет вам иметь большее количество одновременно запущенных машин на узле. Что произойдёт в случае использования машинами всей памяти, если одну из машин потребуется
перезагрузить? Действительно, для перезагрузки машине потребуется выделить стартовое значение памяти, которое может быть выше минимального. А на узле может и не быть дополнительной памяти для машины. И возможно, что гипервизор не сможет запросить памяти у
запущенных машин, ибо все они агрессивно используют свою память, или используют уже минимальное значение.

Для этого и только для этого случая предусмотрена возможность использования технологии Smart Paging. Перезагружаемая машина получит требуемый объём памяти, часть которой будет обеспечена за счёт файла подкачки узла.

После загрузки ОС и служб гипервизор потребует машину вернуть память до минимального объёма, компенсируя недостаток памяти файлом подкачки внутри виртуальной машины.

Во всех остальных случаях, Smart Paging задействован не будет. Это не overcommitment, так горячо не любимый в промышленной среде всеми здравомыслящими администраторами.

Итак, Smart Paging будет задействован только в случае, если выполняются все нижестоящие условия:

  • Виртуальная машина перезагружается
  • Свободной физической памяти на узле недостаточно для выделения стартового значения
  • Гипервизор не может запросить недостающую пам��ть у остальных машин
  • Суммарный запрашиваемый всеми запущенными машинами объём памяти превышает физическую не более чем в два раза

Smart Paging не будет задействован в любом из нижеописанных случаев:

  • Виртуальная машина запускается из выключенного состояния
  • Запущенная виртуальная машина требует памяти при её отсутствии на узле
  • Виртуальная машина переносится по отказу в кластере при отказе одного из узлов
  • Суммарный запрашиваемый всеми запущенными машинами объём памяти превышает физическую более чем в два раза

Про кластеры разговор отдельный. В Windows Server 8 при переходе по отказу и нехватке памяти на узле кластер отправит сигнал на выключение машин с низким приоритетом для запуска машин с высоким и средним приоритетом. После запуска высокоприоритетных машин,
кластер попробует запустить низкоприоритетные.

Internal Guest Paging

Виртуальные машины имеют свой собственный файл подкачки. В случае нехватки памяти, они запрашивают гипервизор порцию динамической памяти. Если запрашиваемая память им выделяется не полностью, или же если гипервизор запрашивает машины отдать ему используемую
память, машины используют внутренний файл подкачки. Данный подход более эффективен, чем файл подкачки на узле виртуализации, ибо лишь сама Windows Memory Manager внутри виртуальной машины знает, какие процессы можно поместить в файл подкачки, а какие должны
адресоваться на лету физической памятью. В Hyper-V мы исходим из принципа первоочередности использования файла подкачки внутри виртуальных машин и использования Smart Paging в единственном исключительном случае перезагрузки виртуальных машин.

Источник — блог Russia Windows Virtualization Discussion.

We have several machines running Windows Server 2012 and we wanted to disable the paging file using Group Policy.  It took a while to find the answer but I got it working and I wanted to share with you how this is done.  First of all, to do this
manually, you would need to follow these steps:

1)Right-click Computer, select Properties.

2)Click on Advanced System Properties

3)Choose the Advanced tab

4)Under Performance, click the Settings… button

5)Choose the Advanced tab

6)Under Virtual Memory, click the Change… button

7)Choose No paging file

Obviously this process is cumbersome just for one system let alone a dozen or more.  To take care of this automatically using Group Policy, you will need to do the following:

1)Create a GPO, then go to the Group Policy Management Editor

2)Navigate to Computer Configuration>Preferences>Windows Settings>Registry

3)Create a new registry item using the following settings:

a: Action: Replace

b: Hive: HKEY_LOCAL_MACHINE

c: Key Path: SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

d: Value Name: PagingFiles (do not check the Default option)

e: Value type: REG_MULTI_SZ

f: Value data: 0x10000

There is no specific setting in group policy to disable the paging file, so you must instead follow these procedures to allow group policy to modify a registry key in Windows.  I tested it out on a Windows 7 computer and a Server 2012 machine. 
No reboot was required, just a simple gpupdate /force command in CMD.  Good luck, and don’t forget to test it first!  Not all systems or environments are created equal.

tags: page file, paging file, virtual memory, pagefile, pagingfile, virtualmemory, pagingfiles

Pagefile.sys – это системный файл, используемый операционной системой Windows Server 2012 R2 для управления виртуальной памятью компьютера. Он представляет собой своего рода «расширение» оперативной памяти, которую компьютер может использовать в случае нехватки ресурсов.

Однако в некоторых случаях размер файла Pagefile.sys может быть слишком большим, что занимает ценное место на жестком диске сервера. Это особенно актуально для серверов с ограниченным пространством на жестком диске или в случаях, когда на сервере установлена большая оперативная память.

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

Обратите внимание: перед внесением изменений в размер файла Pagefile.sys рекомендуется создать резервную копию данных сервера, чтобы в случае возникновения проблем можно было восстановить систему в исходное состояние.

Проблемы с размером файла Pagefile.sys в Windows Server 2012 R2

В операционной системе Microsoft Windows Server 2012 R2 файл Pagefile.sys играет важную роль в управлении виртуальной памятью. Он используется для подкачки данных из оперативной памяти на жесткий диск в случае нехватки ресурсов.

Однако, несмотря на свою важность, размер файла Pagefile.sys может стать проблемой для администраторов сервера. Очень часто этот файл имеет излишне большой размер, занимая ценное место на жестком диске. Это может привести к неэффективному использованию ресурсов сервера и снижению его производительности.

Увеличение размера файла Pagefile.sys может быть вызвано такими факторами, как настройка операционной системы по умолчанию, установка большого объема оперативной памяти, а также некорректными настройками системной страницы диска.

Проблема слишком большого размера файла Pagefile.sys может быть решена путем изменения его размера или перемещения на другой диск с большим объемом свободного пространства. Также можно перенести файл на другой раздел того же диска.

Для изменения размера файла Pagefile.sys можно воспользоваться инструментами операционной системы Windows Server 2012 R2. Для этого нужно перейти в настройки системы и выбрать раздел «Дополнительные параметры системы». В открывшемся окне необходимо выбрать вкладку «Дополнительно» и нажать на кнопку «Изменить» в разделе «Виртуальная память». Здесь можно изменить размер файла Pagefile.sys путем указания новых значений в полях «Размер начального размера файла подкачки (МБ)» и «Размер максимального размера файла подкачки (МБ)». После внесения изменений следует сохранить и перезагрузить систему для их применения.

Перенос файла Pagefile.sys на другой диск также может быть выполнен через настройки операционной системы. Для этого нужно перейти в раздел «Дополнительные параметры системы» и выбрать вкладку «Дополнительно». Далее следует нажать на кнопку «Изменить» в разделе «Виртуальная память». В открывшемся окне нужно выбрать раздел, на который будет перемещен файл, выбрав его и нажав кнопку «Новый объем». После этого следует выделить раздел подкачки, выбрав его и нажав на кнопку «Нет подкачки». Затем нужно выбрать новый раздел подкачки, выбрав его и нажав на кнопку «Установить». После внесения изменений следует сохранить и перезагрузить систему для их применения.

Решение проблемы с размером файла Pagefile.sys может значительно повлиять на производительность сервера и общую эффективность его работы. Важно напомнить, что изменение настроек виртуальной памяти может требовать определенных навыков и знаний, поэтому рекомендуется проводить все операции с осторожностью и делать резервные копии данных перед выполнением изменений.

Почему файл Pagefile.sys занимает много места?

Файл Pagefile.sys, известный также как файл подкачки или файл размещения виртуальной памяти, занимает значительное место на диске в операционной системе Windows Server 2012 R2.

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

Размер файла Pagefile.sys может быть значительным, особенно на серверах с большим объемом физической памяти. По умолчанию Windows Server 2012 R2 автоматически управляет размером файла Pagefile.sys и может изменять его в зависимости от потребностей системы.

Большой размер файла Pagefile.sys может быть вызван несколькими факторами:

1. Недостаток физической памяти: Если в системе есть недостаток физической памяти, операционная система будет сильнее полагаться на виртуальную память и увеличить размер файла Pagefile.sys.

2. Неправильные настройки: Если размер файла Pagefile.sys задан слишком большим, например, вручную пользователем, это может привести к его увеличению.

3. Наличие неиспользуемых программ: Если в системе установлены программы, которые не используются или используются редко, операционная система может выделить им виртуальную память в файле Pagefile.sys.

Итак, файл Pagefile.sys может занимать много места из-за недостатка физической памяти, неправильных настроек или наличия неиспользуемых программ в системе. Управление размером этого файла может помочь оптимизировать использование дискового пространства на сервере Windows Server 2012 R2.

Возвращаясь к вопросу безопасности данных, находящихся в оперативной памяти, столкнулся с необходимостью организации автоматической очистки файла подкачки в Windows. При выключении компьютера, данные в его памяти (RAM) автоматически очищаются, однако по-умолчанию данные из файла подкачки pagefile.sys не удаляются. При работе системы часть конфиденциальных данных или пароли сторонних приложений из памяти могут попасть в файл подкачки pagefile.sys на жестком диске (например, при нехватке физической памяти или при вытеснении данных неактивных приложений). И хотя в процессе работы системы файл подкачки доступен монопольно только для самой Windows, в том случае если компьютер выключить, то потенциально злоумышленник при наличии доступа к диску может скопировать файл подкачки и извлечь из него конфиденциальные данные.

Таким образом, было бы логично очищать при выключении (или перезагрузке) Windows. По умолчанию эта функций отключена.

Включить функцию автоматической очистки файла подкачки при перезагрузке можно через групповую политику либо через реестр.

В первом случае, нужно открыть консоль редактора групповых политик (локальный gpedit.msc или доменный gpmc.msc) и перейти в раздел Computer Configuration->Windows Settings -> Security Settings -> Local Policies -> Security Options. В левой панели найдите политику Shutdown: Clear virtual memory pagefile и включите ее (Enabled).

 Shutdown: Clear virtual memory pagefileТакже можно включить очистку виртуальной памяти через реестр. Для этого откройте редактор regedit.exe и перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. Создайте новый DWORD параметр с именем ClearPageFileAtShutdown и значением 1 (или если он уже существует, просто измените его значение).

ClearPageFileAtShutdown Либо можно изменить значение ключа реестра командой Powershell:

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management' -Name ClearPageFileAtShutdown -Value 1

Set-ItemProperty ClearPageFileAtShutdown Чтобы изменения вступили в силу, нужно перезагрузить Windows.

При следующем выключении ОС, система очищает файл pagefile.sys, перезаписывая его нулями. В зависимости от размера файла подкачки это может существенно увеличить время выключения (перезагрузки) системы на 10-30 минут. Кроме того, при включении данной политики также выполняется обнуление и файла режима гибернации hiberfil.sys (если отключен спящий режим). Теперь восстановить данные из файла подкачки практически невозможно.

  • Откройте проводник windows это как
  • Отключить центр обеспечения безопасности windows 10 через реестр
  • Откройте командную строку с правами администратора windows 10
  • Отключить файрвол windows 10 в командной строке
  • Откройте командную строку от имени администратора windows 10