Как правильно настроить файл подкачки в Windows. Основные принципы работы файла подкачки

20.09.2019 Windows

Как настроить файл подкачки? Что это такое? Как влияет на производительность всей системы?

В Windowsе есть такой файл, он называется свип файл, который является продолжением оперативной памяти компьютера, так называемая виртуальная память или файл подкачки. Так вот, к этому файлу Windows обращается постоянно, что-то туда пишем и что-то от туда читает, в процессе выполнения программ. Самое интересное, что к этому файлу Windows обращается независимо от объема ОЗУ. Единственное когда памяти мало, то обращается чаще. Когда памяти много, обращается реже, но всё равно обращается. Даже если на компьютере установленно 16 ГБ ОЗУ, Windows продолжает работать с файлом подкачки, что притормаживает работу системы.

В добавок этот файл имеет динамический размер, который вычисляется при каждом обращении, а это затраты времени. К тому же если файл будет не целым, то он будет читаться еще медленнее. А целым динамический файл не может быть в принципе, так как расширяясь он заполняет пустоты между файлами. Из сказанного напрашивается такой вывод: если сделать размер этого файла постоянным и записать его на диск цельным, то обращения Windows к нему будут происходить быстрее. И главное это ускорение будет распространяться на работу всей системы.

Настройку файла подкачки будем рассматривать на примере Windows 7. Поскольку принцип работы всех виндовсов одинаковый и интерфейсы крайне похожи, то всё описанное в этой статье полностью соответствует и windows 10 / 8 / 8.1 / xp. И так, чтобы выполнить настройки этого файла необходимо щелкнуть правой кнопкой мыши по значку компьютера и зайти в свойства компьютера или через панель управления в свойства системы. Далее открываем "Дополнительные параметры системы".

Потом открываем вкладку "Дополнительно", далее в разделе "Быстродействие" жмем кнопку "Параметры".

В открывшемся окне выбираем вкладку "Дополнительно" и нажимаем кнопку "Изменить".

Открывается окно "Виртуальная память".

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

В самом верху окна "Виртуальная память" есть пункт "Автоматически выбирать объем файла подкачки". Если в этом пункте стоит галочка, окно настроек становится недоступным и все режимы файла подкачки выбирает система. Для выполнения ручной настройки галочку в этом пункте надо убрать.По умолчанию система располагает файл подкачки на системном диске, как правило это диск С, и размер его динамический, то есть меняющийся в зависимости от нужд от 16 МБ минимум до стольки (МБ, ГБ, ТБ) сколько нужно системе. Максимальный размер файла подкачки теоретически ограничен только свободным пространством диска, на котором он расположен. Естественно системе с таким файлом работать быстро в принципе не возможно. На практике максимальный объем редко доходит до рекомендованного.

Представьте паровоз, тянущий состав с вагонами, в которых лежат разные грузы. На каждой станции паровоз останавливается и начинается работа по формированию нового состава. Одни вагоны отцепляются, другие прицепляются. И каждый раз разное количество вагонов. Как вы понимаете процедура достаточно долгая. Толи дело состав с фиксированным количеством вагонов или вагонеток. Подъехал поезд к станции, засыпали в вагонетки груз и поезд пошел дальше. На следующей станции нужные вагонетки перевернули т.е. освободили и поезд снова поехал без задержек. Так и здесь фиксированный объем файла подкачки работает быстрее чем динамический (нет вычислений, связанных с объемами). Остается только определить какой объем нам нужен.

Как вы помните жесткий диск в компьютере это самое медленное устройство. В идеале во время выполнения программ желательно чтобы к нему вообще не было обращений, только так можно достичь максимальной производительности системы. Но дело в том, что Windows задуман как многозадачная система и к тому же способная реализовывать режим многозадачности при небольших объемах памяти. Этому как раз и способствует файл подкачки, в который выгружаются неактивные задачи. Когда памяти мало, например 512 МБ, система обращается к файлу подкачки при каждом переключении с задачи на задачу (с программы на программу). И чем больше программ у нас включено одновременно, тем больший потребуется файл подкачки. Реально понадобится объем около 2,5 ГБ. Конечно же это условное приближение и оно очень сильно зависит от объемов используемых программ.

Теперь представьте что мы увеличили объем оперативной памяти вдвое до 1 ГБ. Что теперь произойдет? Несколько программ например 2-3 (в зависимости от их размеров) смогут работать находясь полностью в памяти. Система начнет обращаться к файлу подкачки, только когда памяти не станет хватать, а произойдет это если добавить количество активных задать. В результате вам станет хватать уже 2 ГБ.

Давайте теперь объем памяти увеличим еще в двое - до 2 ГБ. Вы заметили, что происходит? Объем, используемой памяти, перекочевывает из файла подкачки в оперативную память. То есть теперь нам должно хватить файла подкачки в пределах 1,5 ГБ. А если память увеличить еще в двое до 4 ГБ, на всё про всё должно хватить и 1 ГБ. Исходя из такой последовательности можно предположить, что при наличии 8 и более ГБ от файла подкачки можно отказаться совсем. И эта теория в какой-то мере верна. Но всё зависит, как я говорил, от загруженности системы, т.е. от количества активных программ и от их тяжести то есть объема. У меня например, при 2-х ГБ памяти, система создает файл подкачки 2,7 ГБ, а рекомендует 3 ГБ.

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

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

Выбираем пункт "без файла подкачки" и нажимаем кнопку "Задать". Система заругается и выдаст окно с предупреждением:
Как настроить файл подкачки - Предупреждение

Поскольку мы делаем это намеренно, то жмем "Да". И у нас появляется новое окно с предложением перезагрузить систему чтобы изменения вступили в силу.
Как настроить файл подкачки - Предложение перезагрузить

Жмем "ОК" и перезагружаем систему. Теперь Windows загружается без файла подкачки. Чтобы новый файл подкачки оказался целым, необходимо дефранментировать пространство на диске. Поскольку мы стремимся к максимальной производительности системы, то располагать файл будем на диске С (это в случае с одним физическим диском). Следовательно Диск С и будем дефрагментировать. Для этого открываем вкладку мой компьютер. Наводим мышку на диск С, жмем правую кнопку мыши и выбираем свойства. Открываем вкладку "Сервис" и нажимаем на кнопку "Выполнить дефрагментацию".

Как настроить файл подкачки - Дефрагментация диска

Запустится программа дефрагментатора. Выбираем диск С и нажимаем "Дефрагментация Диска".
Как настроить файл подкачки - Дефрагментация диска С

Если вдруг по каким-то причинам у вас не установлен дефрагментатор от Windows или он вас не устраивает, то ничего страшного. Закачайте например бесплатную Auslogics Disk Defrag и выполняйте дефрагментацию диска С, как показано на рисунке ниже.
Как настроить файл подкачки - Auslogics

Далее возвращаемся в окно настройки файла подкачки. Как настроить файл подкачки - Установка размера файла

Выбираем дефрагментированный диск С или другой, специально подготовленный пустой жесткий дик. Выбираем раздел "Указать размер" в окошки вводим "Исходный" и Максимальный" размеры в мегабайтах. Я в данном случае указал рекомендованный системой размер в 3070 МБ. Числа должны быть одинаковые это важно для создания фиксированного размера файла подкачки. Далее нажимаем кнопку задать. Указанные цифры отобразятся в строке диска С, как на рисунке. Далее нажимаем кнопку "ОК". Перезагружаем компьютер. Теперь Windows во время загрузки создаст новый нефрагментированный файл подкачки в новом месте.

Внимание: ОЧЕНЬ ВАЖНЫЙ момент!!!

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

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

Удачного вам УСКОРЕНИЯ. Надеюсь что вы поняли "Как настроить файл подкачки?" и для вас теперь это не большая проблема.

Если есть вопросы, задавайте в комментариях.

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

Использование файла подкачки сказывается на скорости работы приложения. Перемещение данных в ОЗУ и обратно происходит на порядок быстрее, нежели обмен с жестким. К тому же, частое использование файла подкачки чревато фрагментацией данных. Поэтому эффективнее наращивать количество памяти ОЗУ, чем .

Настройка области подкачки

При невозможности физически нарастить объем ОЗУ или для отключения файла подкачки потребуется открыть его настройки. Чтобы открыть настройки потребуется кликнуть по иконке «Компьютер» правой клавишей. В меню появится пункт «Свойства».

Во вкладке «Дополнительно» будет блок «Быстродействие», здесь нужно нажать на кнопку «Параметры».

После этого откроется окно «Параметры быстродействия». Здесь на вкладке «Дополнительно» будет блок «Виртуальная память» с кнопкой «Изменить».

После нажатия на кнопку «Изменить» откроется окно для настройки файла подкачки. Альтернативный вариант доступа к настройкам состоит в , в которой будет пункт «Система». Дальше действия точно такие же, как после открытия «Свойств» через иконку «Компьютер».

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

Есть несколько важных пунктов, которым должен соответствовать этот файл:

  • его размер следует задавать в полтора-два раза больше, чем объем имеющейся ОЗУ;
  • самый малый и максимальные размеры подкачки обязательно должны совпасть.
  • если у вас в системе несколько дисков, то размещать файл подкачки нужно на самом быстром из них;

При наличии достаточного количества памяти в ОЗУ файл подкачки можно и вовсе отключить. Для этого понадобится иметь «на борту» не менее 6 Гб в ОЗУ. Кроме того, существует возможность автоматического определения размера файла подкачки. Для этого нужно только выбрать соответствующий пункт в окне с настройками файла подкачки.

Применение изменений произойдет после нажатия кнопок «ОК» и «Применить». После этого рекомендуется перезагрузить компьютер. Делать это не обязательно, но нужно помнить, что изменения будут действовать после перезагрузки.

Не хватает оперативной памяти (ОЗУ) для работы в интернете или запуска современной игры? Прежде чем увеличивать ее объем, попробуйте настроить файл подкачки. Вполне возможно, что ваш ПК или ноутбук станет работать гораздо шустрее. О том, что это такое и как включить файл подкачки в Windows 7, 8 или 10 читайте ниже.

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

Приведу простой пример. Вы хотите включить игру, которая требует 4 Гб оперативной памяти. А у вас лишь 3 Гб. Что делать в таком случае? Увеличить виртуальную память и недостающие 1 Гб Windows «возьмет» из этого специального файлика. Таким способом вы сможете запустить игру и поиграть в нее.

Разумеется, здесь есть несколько моментов:

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

Впрочем, если корректно настроить файл подкачки, то вы получите именно тот результат, который требуется. И делается это несложно. А чтобы упростить вам эту задачу, ниже приведена подробная инструкция о том, как увеличить файл подкачки в Windows 10, 8 и 7. Она простая и под силу даже новичкам.

Как увеличить виртуальную память в Windows 7

Итак, если ваш ноутбук или ПК тормозит, попробуйте увеличить файл подкачки в Windows 7. Для этого:

Именно тут выполняется настройка виртуальной памяти. Как правило, здесь уже указан используемый на данный момент размер (на скриншоте ниже это 8173 Мб, т.е. 8 Гб). Чтобы увеличить виртуальную память в Windows 7, щелкните на кнопку «Изменить».

Появится то самое окошко, где вы сможете настроить файл подкачки.

Если же ПК или ноутбук тормозит, значит, оперативной памяти не хватает и ее надо увеличить. Для начала уберите галочку в этом пункте. Все кнопки станут активными, и вы сможете включить файл подкачки в Windows 7 и настроить его на свое усмотрение. Для этого поставьте галочку возле строки «Указать размер» и пропишите исходный и макс. объем. Например – 4096 Мб (это 4 Гб).

Важно: во избежание тормозов и глюков исходный и макс. размер должны быть одинаковыми. Например, 4096 Мб (как на скриншоте выше).

Кстати, какой оптимальный размер файла подкачки? Советов по этому вопросу в интернете очень много, да и формулы расчета тоже замысловатые.

Оптимальным вариантом будет увеличить виртуальную память компьютера на 50% от объема вашей ОЗУ. То есть, файл подкачки для 4 Гб будет составлять 2048 Мб. А для 8 Гб ОЗУ можно указать 4096 Мб. В результате суммарная память будет составлять 6 и 12 Гб соответственно – этого должно хватить на все случаи жизни.

Если на ПК установлено много ОЗУ (например, 8 Гб), и вы работаете только в интернете, тогда можете вообще отключить файл подкачки. Ведь, как я говорил выше, он нагружает жесткий диск, что иногда замедляет работу ПК.

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

В общем, если вам нужно увеличить виртуальную память в Windows 7 – укажите ее вручную. А если потребуется восстановить прежние значения, поставьте галочку в самом первом пункте и закройте это окно.

Как увеличить файл подкачки в Windows 8

Файл подкачки в Windows 8 настраивается аналогично (как и в «семерке»). А чтобы не заходить в Пуск и не открывать множество окон, можно поступить проще:


Кстати, данная команда работает также и в «семерке». Для удобства можете использовать этот способ при необходимости.

Как увеличить файл подкачки в Windows 10

Настройка файла подкачки в Windows 10 осуществляется несколько иным образом. Хотя ничего сложного тут нет.

Чтобы включить файл подкачки в Windows 10:

Вместо заключения

На этом все. Теперь вы в курсе, что такое файл подкачки, для чего он нужен, и как его увеличить.

И напоследок отмечу еще 2 небольших нюанса:

  1. Не рекомендуется создавать этот файлик на нескольких разделах, это лишь увеличит нагрузку на HDD-накопитель. Выберите только один подраздел (например, локальный диск C).
  2. Увеличение виртуальной памяти в Windows XP осуществляется так само, как в «семерке» или «восьмерке».

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

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

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

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

Но мы отвлеклись. Вернемся к оперативной памяти. Какое у нее есть неприятное свойство? Ее в большинстве случаев не хватает. Даже несмотря на то, что сейчас в любом домашнем компьютере доступно несколько гигабайт оперативки. Все равно мало. Современные программы и игры требуют очень большой объем памяти для нормальной работы. А уж если вы параллельно запустите программу для обработки видео или звука, а затем начнете играть в , то здесь совсем беда.

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

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

Файл подкачки располагается на логических дисках вашего компьютера, резервируя при этом для себя определенный размер дискового пространства. Его кстати, вы настраиваете вручную, но об этом немного позже. Из этого следует, что данные программ и приложений, компьютер выгружает на жесткий диск. И соответственно, когда они ему нужны, пытается переместить их (читай - скопировать) в оперативную память. Каким бы не был дорогим и современным жесткий диск, его скорость обработки данных (чтение и копирование), куда меньше того же показателя у оперативной памяти. Именно поэтому, не получиться просто расширить ее за счет файла подкачки. Но вот разместить данные неактивных программ, пожалуйста.

Какой оптимальный объем должен быть у файла подкачки

Стоит отметить, что в выборе размера вы ограниченны только доступным местом на логическом диске - ведь мы можем разместить на каждом из них свою копию файла подкачки.

Но существуют оптимальные значения. Вот они - слева исходный объем оперативной памяти, справа оптимальный размер для файла подкачки.

  • 512 Mb - 2248-2248 Mb
  • 1024 Mb - 1712-1712 Mb
  • 2048 Mb - 1224-1224 Mb
  • 4024 Mb - 768-768 Mb
  • 6 Гб (или выше) - без файла подкачки (т.е 0 Mb, т.е отключен)

Зачем указывать одинаковые размеры

Тут мы преследует две цели. Во первых, если вы укажите фиксированный размер, системе Windows не придется периодически тратить ресурсы на определение текущего значения. Это сократит служебные операции, и в общей сложности повысит быстродействие системы (пусть и не сильно).

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

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

Нам нужно перейди в окно редактирования. Для этого нажимаем "Пуск - Панель управления - Система ". Мы перейдем к окну информации о нашей системе.

Далее мы щелкаем по строчке "Дополнительные параметры системы ". Откроется диалоговое окно - здесь нам нужна вкладка "Дополнительно ". Переходим на нее. Здесь в первом блоке "Быстродействие ", мы нажимаем кнопку "Параметры ". В следующем окне снова переходим на вкладку "Дополнительно ", и в блоке "Виртуальная память ", нажимаем кнопку "Изменить ".

Чтобы вам было легче ориентироваться, весь процесс показан на картинке ниже:

Если на предыдущем шаге вы все сделали правильно, то у вас должно открыться окно редактирования параметров файла подкачки.

Давайте посмотрим, что у нас здесь есть.

В самом верху мы можем отметить галочкой пункт "Автоматически выбирать объем файла подкачки". Если вы не уверены в том, какое значение установить, или у вас нет под рукой данного руководства, можете предоставить Windows самой решать.

Самый интересный блок - установка размера. Здесь мы указываем нужное значение, а затем нажимаем кнопку задать. Давайте для примера отметим, что нам нужен файл подкачки на диске "C", размеров в 2 Гб.

Выделяйте в списке диск "C", затем выбирайте пункт "Указать размер ". Теперь в обоих полях пишите 2048 (ровно 2 Гб), и нажимайте кнопку "Задать ". Все, можете проверить результат. В списке, напротив диска "C" показано, что значения файла подкачки равно 2048 Мб.

Теперь сохраняйте параметры и перезагружайте компьютер.

Видео: меняем размер файла подкачки в Windows

Если не уверены - оставьте выбор размера файла подкачки на усмотрение Windows.

Если в процессе настройки компьютера вы нарушили работоспособность системы, воспользуйтесь средством .

Заключение

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

  • , при сборке компьютера
  • Как сделать

Выбираем размер файла подкачки

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

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

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

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

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

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

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

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

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

Виртуальное адресное пространство поделено на блоки равного размера, которые называют страницами (pages). Отсюда кстати и название page file — страничный файл. Физическая память также поделена на разделы, называемые страничными фреймами (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 и проверил, как размер файла подкачки зависит от объема физической памяти и настроек дампа. Вот что получилось:

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

Также стоит напомнить, что это начальные значения. При нехватке виртуальной в процессе работы памяти система может увеличивать файл подкачки вплоть до максимального значения, которое при автоматической настройке составляет 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 не сможет сохранить дамп памяти в случае сбоя.
И последнее. Манипуляции с файлом подкачки не особо сильно влияют на производительность системы в целом. Повторюсь, при достаточном количестве физической памяти файл подкачки используется по минимуму. Если же в системе постоянно не хватает памяти и она активно использует файл подкачки, то в первую очередь стоит подумать о расширении физической памяти.