Найти в Дзене
Т.Е.Х.Н.О Windows & Linux

💾 Файл подкачки Windows: мифы и реальность. Как сделать чтобы он реально работал? 🚀

Файл подкачки (pagefile.sys) — одна из самых противоречивых тем в оптимизации Windows. Вокруг него десятилетиями накопилась масса мифов: одни говорят, что его нужно отключать при наличии 16+ ГБ RAM, другие советуют делать его размером "1.5x от оперативки", третьи вообще призывают переносить на отдельный медленный HDD "для разгрузки системного SSD". В этой статье я покажу, как всё работает на самом деле — опираясь на официальные документы Microsoft, анализ поведения Windows Memory Manager и реальные тесты производительности.​​ Мы разберём актуальные настройки для Windows 11 24H2 и Windows Server 2025, поймём взаимодействие с SysMain (SuperFetch), памятью сжатия и технологией Memory Compression, увидим почему SSD не убивает файл подкачки и как правильно диагностировать проблемы через Commit Charge. В конце вы получите чек-лист готовых команд PowerShell и реестра для точной настройки.​ Механика: как работает файл подкачки внутри Windows Архитектура виртуальной памяти 🧠 Windows используе
Оглавление

Файл подкачки (pagefile.sys) — одна из самых противоречивых тем в оптимизации Windows. Вокруг него десятилетиями накопилась масса мифов: одни говорят, что его нужно отключать при наличии 16+ ГБ RAM, другие советуют делать его размером "1.5x от оперативки", третьи вообще призывают переносить на отдельный медленный HDD "для разгрузки системного SSD". В этой статье я покажу, как всё работает на самом деле — опираясь на официальные документы Microsoft, анализ поведения Windows Memory Manager и реальные тесты производительности.​​

Мы разберём актуальные настройки для Windows 11 24H2 и Windows Server 2025, поймём взаимодействие с SysMain (SuperFetch), памятью сжатия и технологией Memory Compression, увидим почему SSD не убивает файл подкачки и как правильно диагностировать проблемы через Commit Charge. В конце вы получите чек-лист готовых команд PowerShell и реестра для точной настройки.​

Механика: как работает файл подкачки внутри Windows

Архитектура виртуальной памяти 🧠

Windows использует виртуальную память для всех процессов — это не прихоть, а фундаментальная особенность архитектуры. Каждый 64-битный процесс получает виртуальное адресное пространство до 128 ТБ (теоретически, на практике — около 8 ТБ в пользовательском режиме для Windows 10/11), и это пространство существует всегда, независимо от объёма физической RAM.​

Менеджер памяти Windows (Memory Manager) транслирует виртуальные адреса в физические через таблицы страниц (Page Tables). Каждая страница памяти — это блок 4 КБ (на x64-архитектуре). Когда приложение запрашивает память, система выделяет виртуальные страницы, но физическую RAM резервирует только по требованию — это называется Demand Paging.​

Рабочий набор (Working Set) и списки памяти 📊

Working Set процесса — это набор страниц, которые активно используются и физически находятся в RAM. Он делится на:​

  • Private Working Set — уникальная память процесса (переменные, стек, куча)​
  • Shareable Working Set — разделяемые данные (DLL, memory-mapped файлы)​

Когда RAM начинает заканчиваться, Memory Manager триммирует (урезает) Working Set процессов, перемещая неактивные страницы в специальные списки:​

  • Standby List — чистые страницы, которые можно мгновенно вернуть в Working Set при обращении​
  • Modified List — изменённые страницы, требующие записи в pagefile.sys перед освобождением​
  • Free List — полностью свободная память​

Это критически важно понимать: pagefile.sys — это не "медленная свалка для данных", а гарантия системы, что выделенная память (Commit Charge) будет обеспечена либо RAM, либо местом на диске.​

Commit Charge и Commit Limit: что это и зачем 💡

Commit Charge (память с резервированием) — это объём виртуальной памяти, которую система пообещала процессам. Каждый раз, когда приложение выделяет память через VirtualAlloc, malloc или любой аналог, система проверяет: "А смогу ли я выполнить это обещание?"​

Commit Limit = RAM + размер всех файлов подкачки. Если Commit Charge превысит Commit Limit, Windows откажет в выделении памяти, и приложения начнут падать с ошибками "Out of Memory".​

Пример: У вас 16 ГБ RAM и pagefile 8 ГБ → Commit Limit = 24 ГБ. Даже если физически занято только 6 ГБ RAM, система может выделить до 24 ГБ виртуальной памяти процессам. Если отключить pagefile (Commit Limit = 16 ГБ), то при запросе 20 ГБ память не будет выделена, хотя физически RAM свободна.​

Сжатие памяти (Memory Compression): как это меняет правила игры 🗜️

Начиная с Windows 10, Microsoft ввела Memory Compression. Вместо того чтобы сразу писать неактивные страницы в pagefile.sys, система сначала пытается их сжать прямо в RAM. Сжатые данные хранятся в Store (Compressed Store), который управляется процессом System (поэтому он может занимать 500+ МБ памяти).​

Алгоритм работы:

  1. RAM заполнена → Memory Manager начинает триммирование Working Set
  2. Сначала страницы сжимаются (коэффициент ~2.5:1 в среднем)​
  3. Если сжатия недостаточно → только тогда данные пишутся в pagefile.sys​

Это радикально снижает обращения к диску. По данным Microsoft, с Memory Compression количество записей в pagefile падает на 50-70%. Декомпрессия работает на скорости ~1 ГБ/сек на ядро процессора, что в разы быстрее чтения с любого накопителя.​

Важно: Отключение SysMain (SuperFetch) также отключает Memory Compression, что увеличивает нагрузку на pagefile и снижает производительность на системах с менее 16 ГБ RAM.​

Когда Windows реально использует pagefile.sys? ⚙️

Вопреки мифам, pagefile используется не только при нехватке RAM. Вот реальные сценарии использования:​

  1. Backing for Commit Charge — основная функция: гарантия места для виртуальной памяти​
  2. Modified Page Writer — запись изменённых страниц из Modified List при нехватке RAM​
  3. Kernel Crash Dumps — сохранение дампов памяти при BSOD (требуется pagefile размером ≥ RAM для Complete Memory Dump)​
  4. Специфичные приложения — некоторые программы (Adobe Premiere, SQL Server, игры с интенсивным использованием памяти) явно запрашивают pagefile​
  5. Оптимизация использования RAM — Windows может вытеснить редко используемые данные в pagefile, освобождая RAM под более активный контент​

Интересный факт: В играх с открытым миром (Hogwarts Legacy, Where Winds Meet) наличие правильно настроенного pagefile уменьшает traversal stutter (фризы при загрузке локаций) на 70-90%. Это происходит потому, что Windows может агрессивнее освобождать RAM под потоковую загрузку текстур, зная, что есть запас в виде pagefile.​

Мифы vs Реальность: развенчиваем популярные заблуждения 🔍

Миф №1: "С 16+ ГБ RAM файл подкачки не нужен" ❌

Реальность: Даже с 64 ГБ RAM файл подкачки выполняет критические функции. Вот что происходит при отключении:​

  • Crash dumps недоступны — при BSOD дамп не сохранится, диагностика невозможна​
  • Commit Limit = RAM — приложения, запрашивающие много виртуальной памяти, получат отказ, даже если физическая RAM свободна​
  • Отказ некоторых приложений — программы типа SQL Server, Adobe Creative Suite, игровые движки могут падать или отказываться запускаться​
  • Риск нестабильности — при необычных всплесках нагрузки система может упасть с ошибкой "Out of Memory"​

Официальная позиция Microsoft: "Не отключайте pagefile даже на системах с большим объёмом RAM. Используйте режим System Managed или настройте минимальный размер 2-4 ГБ".​

Исключение: На системах с 32+ ГБ RAM и без требований к crash dumps можно установить фиксированный pagefile 1-2 ГБ, но полное отключение рискованно.​

Миф №2: "Pagefile нужно делать 1.5x от RAM" ❌

Реальность: Это устаревший совет из эпохи Windows 95/XP, когда системы имели 128-512 МБ RAM и активно пользовались подкачкой. Сегодня формула зависит от:​

  • Типа системы — десктоп/ноутбук/сервер
  • Объёма RAM — 8 ГБ vs 32 ГБ vs 128 ГБ
  • Типа рабочей нагрузки — офисная работа vs рендеринг vs виртуализация
  • Требований к crash dump — нужен полный дамп или нет​

Современная таблица (официальная рекомендация Microsoft):

-2

Практический совет: Используйте Performance Monitor счётчик Memory\% Committed Bytes In Use в течение недели типичной работы. Если значение регулярно превышает 80%, увеличьте Maximum Size​.

Миф №3: "Pagefile убивает SSD из-за износа" ❌

Реальность: Это самый живучий миф, опровергнутый ещё в 2015 году​. Вот факты:

Статистика обращений к pagefile.sys (данные Microsoft​):

  • 67% операций чтения — блоки ≤4 КБ (мелкие случайные чтения)
  • 62% операций записи — блоки ≥128 КБ (крупные последовательные записи)
  • Соотношение чтение:запись = 40:1​

SSD идеально подходят для этого профиля нагрузки — они спроектированы на мелкие случайные чтения. Более того:

  • Pagefile занимает всего 8% от общего объёма записи на диск​
  • Современные SSD имеют TBW (Total Bytes Written) 150-600+ ТБ​ — даже при активной подкачке 10 ГБ/день SSD проживёт 40+ лет​
  • Wear Leveling (выравнивание износа) эффективно распределяет записи по ячейкам памяти​

Реальный тест Intel: Enterprise SSD выдержали петабайт случайных записей до появления первых ошибок​. Ваш pagefile никогда не приблизится к этим значениям.

Вывод: Размещайте pagefile на самом быстром накопителе (NVMe SSD → SATA SSD → HDD)​. Износ — не проблема.

Миф №4: "Pagefile нужно переносить на отдельный диск для ускорения" ❌

Реальность: Это вредный совет​. Вот что происходит:

Если "отдельный диск" = раздел на том же физическом диске:

  • Производительность падает из-за увеличения seek time​ — головке HDD/контроллеру SSD приходится прыгать между разделами​
  • Фрагментация усиливается​

Если "отдельный диск" = реально отдельный физический диск:

  • Теоретически может дать прирост на HDD-массивах с несколькими контроллерами​
  • На практике в 2025 году это актуально только для серверов с RAID-конфигурациями​
  • На домашних ПК с одним NVMe и одним SATA SSD лучше оставить pagefile на NVMe​

Исключение: Если системный диск критически переполнен (<10% свободного места), имеет смысл временно перенести pagefile на другой физический диск, но это паллиатив — нужно расширять системный диск​.

Microsoft рекомендует: Один pagefile на системном диске (C:$$, размер System Managed или Custom​.

Миф №5: "Автоматический размер (System Managed) неэффективен" ⚠️

Реальность: Это частично верно, но с нюансами​.

Проблемы System Managed:

  1. Динамическое изменение размера — если pagefile растёт "на лету", это вызывает задержки и фрагментацию​
  2. Неоптимальные размеры — Windows может создать pagefile 32 ГБ на системе с 16 ГБ RAM и 20% свободного места, заполняя диск​
  3. Непредсказуемость — размер может меняться без уведомления

Преимущества System Managed:

  1. Автоматическая адаптация — если требования изменились (установили новую игру/приложение), pagefile расширится сам​
  2. Меньше ошибок конфигурации — пользователь не может задать неверный размер​
  3. Оптимально для серверов Hyper-V — Microsoft явно рекомендует System Managed для management OS в Hyper-V​

Гибридный подход (моя рекомендация):

  • 16+ ГБ RAM, SSD, стабильная нагрузка → Custom Size (фиксированный Initial = Maximum)​
  • 8-16 ГБ RAM, переменная нагрузка → System Managed​
  • Серверы, виртуализация → System Managed или консультация по конкретной роли​

Пошаговая настройка файла подкачки: делаем правильно 🛠️

Диагностика текущего состояния 🔎

Шаг 1: Проверяем использование памяти и Commit Charge

Откройте Диспетчер задач (Ctrl+Shift+Esc) → вкладка Производительность → Память:

  • Используется (In use) — физическая RAM в Working Sets процессов
  • Доступно (Available) — свободная RAM + Standby List
  • Выделено (Committed) — это и есть Commit Charge​

Критичный момент: Если Выделено (Committed) приближается к Предел выделенной памяти (Commit Limit), вам нужен pagefile большего размера​.

Шаг 2: Смотрим текущий размер pagefile

# PowerShell с правами администратора

Get-CimInstance -ClassName Win32_PageFileSetting | Format-List Name, InitialSize, MaximumSize

Get-CimInstance -ClassName Win32_PageFileUsage | Format-List Name, AllocatedBaseSize, CurrentUsage

Вывод:

  • InitialSize/MaximumSize — настроенные значения (в МБ)
  • AllocatedBaseSize — реальный размер на диске сейчас (в МБ)
  • CurrentUsage — сколько используется в данный момент (в МБ)

Шаг 3: Мониторинг счётчиков Performance Monitor

Запустите perfmon.msc и добавьте счётчики​:

  • Memory\% Committed Bytes In Use — загрузка Commit Charge (должно быть <80%)
  • Memory\Pages/sec — количество hard page faults (должно быть <20)​
  • Paging File(_Total)\% Usage — использование pagefile (если >90%, нужно увеличить размер)

Запустите мониторинг на 3-7 дней типичной работы, затем проанализируйте максимальные значения.

GUI-метод: настройка через интерфейс Windows

Шаг 1: Нажмите Win+Pause (или Win → Параметры → Система → О программе → Дополнительные параметры системы)

Шаг 2: Вкладка Дополнительно → раздел Быстродействие → кнопка Параметры...

Шаг 3: Вкладка Дополнительно → раздел Виртуальная память → кнопка Изменить...​

Шаг 4: Снимите галочку "Автоматически выбирать объём файла подкачки"

Шаг 5: Выберите системный диск (обычно C:), установите переключатель "Указать размер":

  • Исходный размер (МБ) — Initial Size
  • Максимальный размер (МБ) — Maximum Size

Рекомендации по размерам (примеры):

Для 8 ГБ RAM:

Для 8 ГБ RAM:

Исходный размер: 8192 МБ (= 8 ГБ)

Максимальный размер: 16384 МБ (= 16 ГБ)

Для 16 ГБ RAM (фиксированный размер для игр/монтажа):

Исходный размер: 16384 МБ (= 16 ГБ)

Максимальный размер: 16384 МБ (= 16 ГБ)

Для 32 ГБ RAM (минимальный для stability):

Исходный размер: 2048 МБ (= 2 ГБ)

Максимальный размер: 16384 МБ (= 16 ГБ)

Шаг 6: Нажмите Задать → ОК → ОК → Применить → Перезагрузите компьютер​

⚠️ Важно: Всегда нажимайте кнопку "Задать" после ввода размеров, иначе изменения не сохранятся​.

PowerShell-метод: автоматизация настройки (для опытных) 🖥️

Полный скрипт настройки pagefile:

# Запустите PowerShell от имени администратора!

# Шаг 1: Отключаем автоматическое управление pagefile

$ComputerSystem = Get-CimInstance -ClassName Win32_ComputerSystem

$ComputerSystem.AutomaticManagedPagefile = $false

Set-CimInstance -InputObject $ComputerSystem

# Шаг 2: Получаем текущий pagefile на системном диске

$PageFilePath = "$env:SystemDrive\pagefile.sys"

$PageFileSetting = Get-CimInstance -ClassName Win32_PageFileSetting -Filter "Name='$PageFilePath'"

# Шаг 3: Если pagefile не существует, создаём его

if ($null -eq $PageFileSetting) {

  $PageFileSetting = New-CimInstance -ClassName Win32_PageFileSetting -Property @{

    Name = $PageFilePath

  }

}

# Шаг 4: Устанавливаем размеры (пример для 16 ГБ RAM)

$InitialSizeMB = 16384 # 16 ГБ

$MaximumSizeMB = 16384 # 16 ГБ (фиксированный)

$PageFileSetting.InitialSize = $InitialSizeMB

$PageFileSetting.MaximumSize = $MaximumSizeMB

Set-CimInstance -InputObject $PageFileSetting

Write-Host "✅ Pagefile настроен: $InitialSizeMB МБ (Initial) / $MaximumSizeMB МБ (Maximum)" -ForegroundColor Green

Write-Host "⚠️ Перезагрузите компьютер для применения изменений!" -ForegroundColor Yellow

# Шаг 4: Устанавливаем размеры (пример для 16 ГБ RAM)

$InitialSizeMB = 16384 # 16 ГБ

$MaximumSizeMB = 16384 # 16 ГБ (фиксированный)

$PageFileSetting.InitialSize = $InitialSizeMB

$PageFileSetting.MaximumSize = $MaximumSizeMB

Set-CimInstance -InputObject $PageFileSetting

Write-Host "✅ Pagefile настроен: $InitialSizeMB МБ (Initial) / $MaximumSizeMB МБ (Maximum)" -ForegroundColor Green

Write-Host "⚠️ Перезагрузите компьютер для применения изменений!" -ForegroundColor Yellow

🔖Дорогие гости и подписчики канала. Если наши материалы приносят вам пользу, вы всегда можете поддержать команду символическим переводом. Любая помощь мотивирует писать для Вас больше полезного и качественного контента безо всяких подписок.🙏🤝🙏🤝🙏
-3
💰ПОДДЕРЖАТЬ КАНАЛ МОЖНО ТУТ ( ОТ 50 РУБЛЕЙ )💰
Или сделать любой перевод по QR-коду через СБП. Быстро, безопасно и без комиссии.(Александр Г.)
С уважением, Команда "Т.Е.Х.Н.О Windows & Linux".

Альтернативный метод через WMI (для совместимости):

# Для старых систем или если CIM не работает

$cs = Get-WmiObject -Class Win32_ComputerSystem -EnableAllPrivileges

$cs.AutomaticManagedPagefile = $false

$cs.Put() | Out-Null

$pf = Get-WmiObject -Class Win32_PageFileSetting

$pf.InitialSize = 16384

$pf.MaximumSize = 16384

$pf.Put() | Out-Null

Проверка результата:

# Проверяем настройки

Get-CimInstance Win32_PageFileSetting | Format-Table Name, InitialSize, MaximumSize -AutoSize

# После перезагрузки проверяем реальный размер

Get-CimInstance Win32_PageFileUsage | Format-Table Name, AllocatedBaseSize, CurrentUsage -AutoSize

Метод через реестр (для экспертов и автоматизации)

⚠️ Предупреждение: Редактирование реестра требует точности. Ошибки могут привести к неработоспособности системы. Делайте бэкап!

Путь к настройкам:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

Ключ PagingFiles (REG_MULTI_SZ):

Формат: Буква_диска:\pagefile.sys МинимальныйРазмер МаксимальныйРазмер

Пример для фиксированного 16 ГБ на диске C:

C:\pagefile.sys 16384 16384

PowerShell-команда:

# Устанавливаем через реестр

$RegPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"

$PagingFiles = "C:\pagefile.sys 16384 16384"

Set-ItemProperty -Path $RegPath -Name "PagingFiles" -Value $PagingFiles -Type MultiString

Write-Host "✅ Реестр обновлён. Перезагрузите систему." -ForegroundColor Green

Проверка значения:

Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name PagingFiles

Настройка через WMIC (старый метод, работает везде)

REM Запустите cmd от имени администратора

REM Отключаем автоматическое управление

wmic computersystem set AutomaticManagedPagefile=False

REM Устанавливаем размер pagefile на диске C:

wmic pagefileset where name="C:\\pagefile.sys" set InitialSize=16384,MaximumSize=16384

Проверка:

wmic pagefile list /format:list

Практические советы и реальные сценарии использования 💼

Практические советы и реальные сценарии использования 💼

Сценарий 1: Игровой ПК (16 ГБ RAM, NVMe SSD) 🎮

Проблема: Фризы и микрозадержки (stuttering) в играх с открытым миром (Hogwarts Legacy, Cyberpunk 2077, Starfield)​.

Решение:

  1. Установите фиксированный pagefile 16 ГБ (Initial = Maximum = 16384 МБ)​
  2. Почему фиксированный? Динамическое расширение вызывает задержки в момент нехватки места​
  3. Разместите на самом быстром диске (NVMe)​

Результат: Снижение traversal stutter на 70-90%, улучшение frametime consistency​​.

Дополнительно: Убедитесь, что SysMain (SuperFetch) включён​ — он предзагружает часто используемые игровые данные в RAM.

Сценарий 2: Рабочая станция для видеомонтажа (32 ГБ RAM, 2 NVMe SSD) 🎬

Проблема: Adobe Premiere/DaVinci Resolve вылетают при работе с 4K/8K footage, появляются сообщения "Not enough memory"​.

Решение:

  1. Pagefile на системном диске (C:): Custom Size 8192-32768 МБ
  2. Опционально: Дополнительный pagefile на втором NVMe (если проекты там)​
  • Важно: оба диска должны быть физически разными, на разных контроллерах​
  1. Включите в Windows 11 "Hardware-Accelerated GPU Scheduling" для снижения нагрузки на RAM​

Почему это работает: Adobe Premiere активно использует virtual memory для кэширования preview frames, даже если физической RAM достаточно​.

Сценарий 3: Офисный ПК (8 ГБ RAM, SATA SSD, много вкладок браузера) 📊

Проблема: Система тормозит при открытии 20+ вкладок Chrome/Edge, появляются сообщения о нехватке памяти.

Решение:

  1. Pagefile: System Managed (автоматический) или Custom 4096-12288 МБ​
  2. Контролируйте Memory\Pages/sec через Performance Monitor — если >100, это thrashing (критическая нехватка RAM)​
  3. Долгосрочное решение: Апгрейд до 16 ГБ RAM​

Временные меры:

  • Включите в Edge/Chrome флаг "Efficiency mode" (приостанавливает фоновые вкладки)​
  • Используйте расширение The Great Suspender для выгрузки неактивных вкладок

Сценарий 4: Сервер Windows Server 2022 с SQL Server (64 ГБ RAM) 🗄️

Проблема: После установки SQL Server появляются предупреждения о low virtual memory​.

Решение:

  1. Для серверов с фиксированной нагрузкой: Custom Size 4096-8192 МБ (достаточно для crash dumps)​
  2. Для серверов с переменной нагрузкой (RDS, Hyper-V): System Managed​
  3. Настройте SQL Server max server memory чтобы оставить 4-8 ГБ RAM для OS​

Важно: Если требуются полные дампы памяти (Complete Memory Dump), pagefile должен быть ≥ размера RAM + 257 МБ​.

Сценарий 5: Ноутбук с 4 ГБ RAM и медленным HDD (бюджетный сегмент) 💻

Проблема: Система критически медленная, постоянный доступ к диску.

Решение:

  1. Краткосрочно: Pagefile 2048-6144 МБ, Custom Size​
  2. Отключите лишние службы (Windows Search, SysMain)​
  3. Включите ReadyBoost, если есть USB 3.0 флешка ≥8 ГБ (даст ~15-20% прирост)​
  4. Долгосрочно: Апгрейд RAM до 8 ГБ или замена HDD на SSD (это даст кратный прирост)​​

Почему так медленно: 4 ГБ RAM недостаточно для Windows 11 + антивирус + браузер → постоянное обращение к медленному HDD pagefile → thrashing​.

Безопасность и откат изменений 🔒

Очистка pagefile при выключении (для повышенной безопасности)

Зачем: Pagefile может содержать конфиденциальные данные (пароли, открытые документы). При dual-boot или физическом доступе к диску эти данные можно извлечь​.

Метод 1: Через групповую политику (Pro/Enterprise)

  1. Запустите gpedit.msc​
  2. Перейдите: Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Локальные политики → Параметры безопасности
  3. Найдите политику "Завершение работы: очистка файла подкачки виртуальной памяти"​
  4. Установите "Включено"​
  5. Перезагрузите систему

Метод 2: Через реестр (работает на Home)

# PowerShell с правами администратора

$RegPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"

Set-ItemProperty -Path $RegPath -Name "ClearPageFileAtShutdown" -Value 1 -Type DWord

Write-Host "✅ Pagefile будет очищаться при выключении." -ForegroundColor Green

Write-Host "⚠️ Выключение системы займёт дольше времени!" -ForegroundColor Yellow

⚠️ Побочные эффекты:

  • Выключение системы занимает на 10-60 секунд дольше (зависит от размера pagefile и скорости диска)​
  • Следующая загрузка может быть медленнее на 5-10 секунд (Windows создаёт pagefile заново)​

Отключение:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name "ClearPageFileAtShutdown" -Value 0 -Type DWord

Шифрование pagefile через BitLocker 🔐

Проще и эффективнее: Включите BitLocker на системном диске — pagefile.sys зашифруется автоматически​.

Активация BitLocker (Windows 11 Pro/Enterprise):

  1. Win → Параметры → Конфиденциальность и защита → Шифрование устройства
  2. Включите BitLocker для диска C:
  3. Сохраните ключ восстановления в облако Microsoft/USB/печать

Результат: Pagefile защищён в реальном времени, нет задержек при выключении​.

Откат к изначальным настройкам (если что-то пошло не так)

Метод 1: Вернуть автоматическое управление

# PowerShell с правами администратора

$cs = Get-CimInstance -ClassName Win32_ComputerSystem

$cs.AutomaticManagedPagefile = $true

Set-CimInstance -InputObject $cs

Write-Host "✅ Pagefile переведён в автоматический режим." -ForegroundColor Green

Write-Host "⚠️ Перезагрузите компьютер!" -ForegroundColor Yellow

Метод 2: Через GUI

  1. Система → Дополнительные параметры → Быстродействие → Параметры → Виртуальная память
  2. Поставьте галочку "Автоматически выбирать объём файла подкачки"​
  3. ОК → Перезагрузка

Метод 3: Через реестр (если GUI недоступен)

Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name "PagingFiles" -ErrorAction SilentlyContinue

Перезагрузите — Windows создаст pagefile с дефолтными настройками.

Канал «Каморка Программиста» — это простые разборы программирования, языков, фреймворков и веб-дизайна. Всё для новичков и практиков.
-4
Каморка Программиста | Дзен
Присоединяйся прямо сейчас.

Диагностика проблем после изменения настроек 🔧

Симптом 1: Приложения падают с "Out of Memory"

Причина: Слишком маленький pagefile или он отключён​.

Решение: Увеличьте Maximum Size до 1.5x-2x RAM или включите System Managed​.

Симптом 2: Система очень медленная после настройки

Причина: Возможно, включён pagefile на медленном диске или произошла фрагментация​.

Решение:

  1. Проверьте, на каком диске находится pagefile: Get-CimInstance Win32_PageFileUsage
  2. Если на HDD — перенесите на SSD​
  3. Дефрагментируйте диск (только для HDD!): defrag C: /O /X​

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

Причина: Конфликт настроек реестра, повреждение MFT (Master File Table), недостаточно места на диске​.

Решение:

  1. Проверьте свободное место: Get-PSDrive C | Select-Object Used,Free
  2. Если <10% свободно — освободите место​
  3. Проверьте диск на ошибки: chkdsk C: /F /R (потребует перезагрузки)
  4. Вернитесь к System Managed настройкам

Симптом 4: Не сохраняются дампы при BSOD

Причина: Pagefile слишком маленький для выбранного типа дампа​.

Решение: Откройте Система → Дополнительные параметры → Загрузка и восстановление → Параметры:

  • Малый дамп памяти (256 КБ): требует pagefile ≥2 МБ​
  • Дамп памяти ядра: требует pagefile ≥размер kernel memory (~1-3 ГБ)​
  • Полный дамп памяти: требует pagefile ≥RAM + 257 МБ​

Установите соответствующий размер pagefile.

Производительность: конкретные метрики и узкие места 📈

Benchmark: HDD vs SATA SSD vs NVMe SSD для pagefile

Тестовая конфигурация: 8 ГБ RAM, pagefile 8 ГБ, искусственная нагрузка с превышением RAM​​.

-5

Источники: ​​

Выводы:

  • NVMe в 3-4 раза быстрее SATA SSD при работе с pagefile​
  • SATA SSD в 4-5 раз быстрее HDD​
  • Разница между Gen3 и Gen4 NVMe минимальна для pagefile (<10%)​

Практический совет: Если у вас SATA SSD и NVMe, обязательно размещайте pagefile на NVMe. Если только SATA SSD — не задумывайтесь, это уже отлично.

Влияние фиксированного vs динамического размера

Тест (8 игр, средний FPS и 1% Low):

-6

Источник: ​

Вывод: Фиксированный pagefile размером 1x RAM даёт +1-2% стабильности за счёт устранения фрагментации и задержек на расширение​​.

Memory Compression: влияние на производительность и использование pagefile

Тест Performance Monitor (Citrix VDA, 8 ГБ RAM):

-7

Вывод: Memory Compression радикально снижает использование pagefile и дисковую нагрузку, при незначительном росте CPU​. Отключать её имеет смысл только на серверах с сотнями ГБ RAM и слабыми процессорами (старые Xeon E5 и т.п.)​.

Pages/sec: когда начинается thrashing

Норма: Memory\Pages/sec < 20​

Проблемная зона: 20-100 pages/sec — система начинает тормозить, нужен больший pagefile или RAM​

Критическая зона (thrashing): >100 pages/sec — система тратит больше времени на подкачку, чем на выполнение задач, работа практически невозможна​.

Решение: Смотрим Memory\Available MBytes — если <10% от RAM, срочно нужен апгрейд оперативки​.

Мониторинг реального использования pagefile

PowerShell-скрипт для непрерывного мониторинга:

# Мониторинг каждые 5 секунд

while ($true) {

  $pf = Get-CimInstance Win32_PageFileUsage

  $commitCharge = Get-CimInstance Win32_PerfFormattedData_PerfOS_Memory | Select-Object CommittedBytes, CommitLimit

   

  $usedGB = [math]::Round($pf.CurrentUsage / 1024, 2)

  $allocGB = [math]::Round($pf.AllocatedBaseSize / 1024, 2)

  $commitGB = [math]::Round($commitCharge.CommittedBytes / 1GB, 2)

  $limitGB = [math]::Round($commitCharge.CommitLimit / 1GB, 2)

  $commitPercent = [math]::Round(($commitGB / $limitGB) * 100, 1)

   

  Clear-Host

  Write-Host "═══════ Мониторинг Pagefile ═══════" -ForegroundColor Cyan

  Write-Host "Pagefile использовано: $usedGB ГБ / $allocGB ГБ" -ForegroundColor Yellow

  Write-Host "Commit Charge: $commitGB ГБ / $limitGB ГБ ($commitPercent%)" -ForegroundColor $(if($commitPercent -gt 80){"Red"}else{"Green"})

  Write-Host "════════════════════════════════════" -ForegroundColor Cyan

   

  Start-Sleep -Seconds 5

}

Сохраните как Monitor-Pagefile.ps1 и запустите в PowerShell.

Код, конфигурация и автоматизация 🤖

Полный скрипт оптимизации pagefile для разных сценариев

<#

.SYNOPSIS

  Скрипт автоматической настройки pagefile в Windows 10/11

.DESCRIPTION

  Определяет объём RAM и автоматически настраивает оптимальный размер pagefile

.NOTES

  Автор: Ваше имя

  Дата: Ноябрь 2025

  Требует запуска от имени администратора

#>

# Проверка прав администратора

if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {

  Write-Warning "❌ Запустите скрипт от имени администратора!"

  Exit

}

# Получаем объём физической RAM (в ГБ)

$RAMSizeGB = [math]::Round((Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory / 1GB, 0)

# Определяем оптимальные размеры на основе RAM

switch ($RAMSizeGB) {

  {$_ -le 4} {

    $InitialSizeMB = 2048

    $MaximumSizeMB = 6144

    $Scenario = "Низкий объём RAM (≤4 ГБ)"

  }

  {$_ -gt 4 -and $_ -le 8} {

    $InitialSizeMB = 4096

    $MaximumSizeMB = 12288

    $Scenario = "Средний объём RAM (8 ГБ)"

  }

  {$_ -gt 8 -and $_ -le 16} {

    $InitialSizeMB = 8192

    $MaximumSizeMB = 16384

    $Scenario = "Оптимальный объём RAM (16 ГБ)"

  }

  {$_ -gt 16 -and $_ -le 32} {

    $InitialSizeMB = 2048

    $MaximumSizeMB = 16384

    $Scenario = "Высокий объём RAM (32 ГБ)"

  }

  {$_ -gt 32} {

    $InitialSizeMB = 2048

    $MaximumSizeMB = 8192

    $Scenario = "Очень высокий объём RAM (>32 ГБ)"

  }

}

Write-Host "═══════════════════════════════════════" -ForegroundColor Cyan

Write-Host "🖥️ Обнаружено RAM: $RAMSizeGB ГБ" -ForegroundColor Green

Write-Host "📊 Сценарий: $Scenario" -ForegroundColor Yellow

Write-Host "📝 Настройки pagefile:" -ForegroundColor Yellow

Write-Host "  Initial Size: $InitialSizeMB МБ" -ForegroundColor White

Write-Host "  Maximum Size: $MaximumSizeMB МБ" -ForegroundColor White

Write-Host "═══════════════════════════════════════" -ForegroundColor Cyan

# Подтверждение пользователя

$confirmation = Read-Host "Применить эти настройки? (Y/N)"

if ($confirmation -ne 'Y') {

  Write-Host "❌ Операция отменена." -ForegroundColor Red

  Exit

}

try {

  # Отключаем автоматическое управление

  $ComputerSystem = Get-CimInstance -ClassName Win32_ComputerSystem

  $ComputerSystem.AutomaticManagedPagefile = $false

  Set-CimInstance -InputObject $ComputerSystem

  Write-Host "✅ Автоматическое управление pagefile отключено" -ForegroundColor Green

   

  # Получаем или создаём настройки pagefile

  $PageFilePath = "$env:SystemDrive\pagefile.sys"

  $PageFileSetting = Get-CimInstance -ClassName Win32_PageFileSetting -Filter "Name='$PageFilePath'"

   

  if ($null -eq $PageFileSetting) {

    Write-Host "⚙️ Создаём новый pagefile..." -ForegroundColor Yellow

    $PageFileSetting = New-CimInstance -ClassName Win32_PageFileSetting -Property @{

      Name = $PageFilePath

    }

  }

  # Устанавливаем размеры

  $PageFileSetting.InitialSize = $InitialSizeMB

  $PageFileSetting.MaximumSize = $MaximumSizeMB

  Set-CimInstance -InputObject $PageFileSetting

   

  Write-Host "✅ Pagefile успешно настроен!" -ForegroundColor Green

  Write-Host "⚠️ ТРЕБУЕТСЯ ПЕРЕЗАГРУЗКА для применения изменений!" -ForegroundColor Yellow -BackgroundColor Black

   

  # Предложение перезагрузки

  $reboot = Read-Host "Перезагрузить компьютер сейчас? (Y/N)"

  if ($reboot -eq 'Y') {

    Write-Host "🔄 Перезагрузка через 10 секунд..." -ForegroundColor Cyan

    Start-Sleep -Seconds 10

    Restart-Computer -Force

  }

   

} catch {

  Write-Error "❌ Ошибка при настройке pagefile: $_"

  Exit 1

}

Использование:

  1. Сохраните как Optimize-Pagefile.ps1
  2. Запустите PowerShell от администратора
  3. Выполните: .\Optimize-Pagefile.ps1

Скрипт проверки состояния и рекомендаций

<#

.SYNOPSIS

  Диагностика настроек pagefile и рекомендации

#>

function Get-PagefileStatus {

  Write-Host "`n═══════ Текущее состояние Pagefile ═══════" -ForegroundColor Cyan

   

  # Проверка автоматического управления

  $cs = Get-CimInstance Win32_ComputerSystem

  $autoManaged = $cs.AutomaticManagedPagefile

  Write-Host "Автоматическое управление: " -NoNewline

  if ($autoManaged) {

    Write-Host "ВКЛ" -ForegroundColor Yellow

  } else {

    Write-Host "ВЫКЛ (ручная настройка)" -ForegroundColor Green

  }

   

  # Текущие настройки

  $pfSettings = Get-CimInstance Win32_PageFileSetting

  if ($pfSettings) {

    Write-Host "`nНастроенные значения:" -ForegroundColor White

    foreach ($pf in $pfSettings) {

      Write-Host " 📁 $($pf.Name)" -ForegroundColor Cyan

      Write-Host "   Initial: $($pf.InitialSize) МБ | Maximum: $($pf.MaximumSize) МБ"

    }

  }

   

  # Реальное использование

  $pfUsage = Get-CimInstance Win32_PageFileUsage

  if ($pfUsage) {

    Write-Host "`nТекущее использование:" -ForegroundColor White

    foreach ($pf in $pfUsage) {

      $usedPercent = [math]::Round(($pf.CurrentUsage / $pf.AllocatedBaseSize) * 100, 1)

      Write-Host " 📊 $($pf.Name)" -ForegroundColor Cyan

      Write-Host "   Размер на диске: $($pf.AllocatedBaseSize) МБ"

      Write-Host "   Используется: $($pf.CurrentUsage) МБ ($usedPercent%)"

    }

  }

   

  # Commit Charge

  $memory = Get-CimInstance Win32_OperatingSystem

  $commitGB = [math]::Round($memory.TotalVirtualMemorySize / 1MB, 2)

  $commitUsedGB = [math]::Round(($memory.TotalVirtualMemorySize - $memory.FreeVirtualMemory) / 1MB, 2)

  $commitPercent = [math]::Round(($commitUsedGB / $commitGB) * 100, 1)

   

  Write-Host "`nCommit Charge:" -ForegroundColor White

  Write-Host " $commitUsedGB ГБ / $commitGB ГБ ($commitPercent%)" -ForegroundColor $(

    if ($commitPercent -gt 90) { "Red" }

    elseif ($commitPercent -gt 75) { "Yellow" }

    else { "Green" }

  )

   

  # Рекомендации

  Write-Host "`n═══════ Рекомендации ═══════" -ForegroundColor Cyan

   

  $ramGB = [math]::Round($memory.TotalVisibleMemorySize / 1MB, 0)

  Write-Host "RAM: $ramGB ГБ" -ForegroundColor White

   

  if ($commitPercent -gt 85) {

    Write-Host "⚠️ ВНИМАНИЕ: Commit Charge >85%!" -ForegroundColor Red

    Write-Host "  Рекомендуется увеличить максимальный размер pagefile" -ForegroundColor Yellow

  }

   

  if ($usedPercent -gt 90) {

    Write-Host "⚠️ Pagefile используется >90%!" -ForegroundColor Red

    Write-Host "  Увеличьте Maximum Size или добавьте RAM" -ForegroundColor Yellow

  }

   

  if (-not $autoManaged -and ($pf.InitialSize -ne $pf.MaximumSize)) {

    Write-Host "💡 Совет: Установите Initial = Maximum для предотвращения фрагментации" -ForegroundColor Cyan

  }

   

  Write-Host "════════════════════════════════════════`n" -ForegroundColor Cyan

}

# Запуск диагностики

Get-PagefileStatus

<#

.SYNOPSIS

  Диагностика настроек pagefile и рекомендации

#>

function Get-PagefileStatus {

  Write-Host "`n═══════ Текущее состояние Pagefile ═══════" -ForegroundColor Cyan

   

  # Проверка автоматического управления

  $cs = Get-CimInstance Win32_ComputerSystem

  $autoManaged = $cs.AutomaticManagedPagefile

  Write-Host "Автоматическое управление: " -NoNewline

  if ($autoManaged) {

    Write-Host "ВКЛ" -ForegroundColor Yellow

  } else {

    Write-Host "ВЫКЛ (ручная настройка)" -ForegroundColor Green

  }

   

  # Текущие настройки

  $pfSettings = Get-CimInstance Win32_PageFileSetting

  if ($pfSettings) {

    Write-Host "`nНастроенные значения:" -ForegroundColor White

    foreach ($pf in $pfSettings) {

      Write-Host " 📁 $($pf.Name)" -ForegroundColor Cyan

      Write-Host "   Initial: $($pf.InitialSize) МБ | Maximum: $($pf.MaximumSize) МБ"

    }

  }

   

  # Реальное использование

  $pfUsage = Get-CimInstance Win32_PageFileUsage

  if ($pfUsage) {

    Write-Host "`nТекущее использование:" -ForegroundColor White

    foreach ($pf in $pfUsage) {

      $usedPercent = [math]::Round(($pf.CurrentUsage / $pf.AllocatedBaseSize) * 100, 1)

      Write-Host " 📊 $($pf.Name)" -ForegroundColor Cyan

      Write-Host "   Размер на диске: $($pf.AllocatedBaseSize) МБ"

      Write-Host "   Используется: $($pf.CurrentUsage) МБ ($usedPercent%)"

    }

  }

   

  # Commit Charge

  $memory = Get-CimInstance Win32_OperatingSystem

  $commitGB = [math]::Round($memory.TotalVirtualMemorySize / 1MB, 2)

  $commitUsedGB = [math]::Round(($memory.TotalVirtualMemorySize - $memory.FreeVirtualMemory) / 1MB, 2)

  $commitPercent = [math]::Round(($commitUsedGB / $commitGB) * 100, 1)

   

  Write-Host "`nCommit Charge:" -ForegroundColor White

  Write-Host " $commitUsedGB ГБ / $commitGB ГБ ($commitPercent%)" -ForegroundColor $(

    if ($commitPercent -gt 90) { "Red" }

    elseif ($commitPercent -gt 75) { "Yellow" }

    else { "Green" }

  )

   

  # Рекомендации

  Write-Host "`n═══════ Рекомендации ═══════" -ForegroundColor Cyan

   

  $ramGB = [math]::Round($memory.TotalVisibleMemorySize / 1MB, 0)

  Write-Host "RAM: $ramGB ГБ" -ForegroundColor White

   

  if ($commitPercent -gt 85) {

    Write-Host "⚠️ ВНИМАНИЕ: Commit Charge >85%!" -ForegroundColor Red

    Write-Host "  Рекомендуется увеличить максимальный размер pagefile" -ForegroundColor Yellow

  }

   

  if ($usedPercent -gt 90) {

    Write-Host "⚠️ Pagefile используется >90%!" -ForegroundColor Red

    Write-Host "  Увеличьте Maximum Size или добавьте RAM" -ForegroundColor Yellow

  }

   

  if (-not $autoManaged -and ($pf.InitialSize -ne $pf.MaximumSize)) {

    Write-Host "💡 Совет: Установите Initial = Maximum для предотвращения фрагментации" -ForegroundColor Cyan

  }

   

  Write-Host "════════════════════════════════════════`n" -ForegroundColor Cyan

}

# Запуск диагностики

Get-PagefileStatus

Использование: Запустите .\Check-Pagefile.ps1 в PowerShell (права администратора).

Групповая политика для домена (GPO)

Для массового развёртывания в корпоративной сети:

Путь GPO:

Computer Configuration → Preferences → Windows Settings → Registry

Ключ:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

PagingFiles (REG_MULTI_SZ)

C:\pagefile.sys 4096 16384

Альтернатива через PowerShell-скрипт в GPO:

Создайте скрипт запуска (Computer Startup Script) с содержимым выше.

Типичные ошибки и диагностика 🔧

Ошибка 1: "Windows successfully diagnosed a low virtual memory condition" 📉

Симптомы: Всплывающее уведомление, приложения вылетают​.

Причины:

  • Pagefile слишком мал или отключён​
  • Commit Charge превышает 90% от Commit Limit​
  • Утечка памяти в каком-то процессе​

Диагностика:

# Проверяем топ процессов по Commit Size

Get-Process | Sort-Object -Property WorkingSet64 -Descending | Select-Object -First 10 ProcessName, @{Name="Commit(MB)";Expression={[math]::Round($_.WorkingSet64 / 1MB, 0)}}

Решение:

  1. Увеличьте Maximum Size pagefile на 50-100%
  2. Найдите процесс-лидер по памяти и перезапустите его
  3. Если проблема повторяется — добавьте физической RAM

Ошибка 2: "PAGE_FAULT_IN_NONPAGED_AREA (STOP 0x00000050)" 💥

Симптомы: Синий экран смерти (BSOD) с кодом 0x50​.

Причины:

  • Повреждённые драйверы (ntoskrnl.exe, win32k.sys, hal.dll)​
  • Неисправная оперативная память​
  • Проблемы с файловой системой NTFS​

Диагностика:

  1. Проверьте дамп памяти: C:\Windows\memory.dmp
  2. Используйте BlueScreenView или WinDbg для анализа​
  3. Запустите chkdsk /f /r для проверки диска
  4. Запустите mdsched.exe для проверки RAM​

Временное решение (если виноват pagefile):​

# Отключите pagefile, перезагрузитесь в Safe Mode, включите снова

# Это пересоздаст pagefile с нуля

Ошибка 3: "Создан временный файл подкачки" (русская Windows) 🛑

Симптомы: При каждой загрузке появляется сообщение, что Windows создала временный pagefile​.

Причины:

  • Повреждение MFT (Master File Table)​
  • Недостаточно свободного места на диске​
  • Конфликт настроек реестра и GUI​

Решение:

# 1. Проверьте свободное место

Get-PSDrive C

# 2. Если <15% свободно — освободите место или расширьте раздел

# 3. Проверьте реестр

$RegPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"

Get-ItemProperty -Path $RegPath -Name PagingFiles

# 4. Если значение некорректное — удалите и пересоздайте:

Remove-ItemProperty -Path $RegPath -Name PagingFiles

# Перезагрузитесь, Windows создаст дефолтный pagefile

# 5. Затем настройте через GUI правильно

Ошибка 4: Pagefile не уменьшается после освобождения места 🔄

Симптомы: Установили меньший размер, перезагрузились, но файл остался большим.

Причины:

  • Windows не удаляет старый pagefile.sys автоматически при уменьшении​
  • Фрагментация​

Решение:

# Шаг 1: Полностью отключите pagefile

$cs = Get-CimInstance Win32_ComputerSystem

$cs.AutomaticManagedPagefile = $false

Set-CimInstance -InputObject $cs

$pfPath = "C:\pagefile.sys"

Remove-CimInstance -InputObject (Get-CimInstance Win32_PageFileSetting -Filter "Name='$pfPath'")

# Шаг 2: Перезагрузитесь

Restart-Computer

# Шаг 3: После загрузки включите с новым размером

# (используйте скрипт настройки pagefile выше)

Ошибка 5: Очень высокий Commit Charge, но RAM почти пуста 🤔

Симптомы: Task Manager показывает Commit 20 ГБ при 8 ГБ использованной RAM​.

Причины:

  • Утечка памяти в kernel-mode драйвере​
  • Paged Pool разросся до огромных размеров​

Диагностика (Sysinternals RAMMap):

  1. Скачайте RAMMap с сайта Sysinternals
  2. Запустите от администратора
  3. Смотрите вкладки:
  • Use Counts → если "Paged Pool" >2 ГБ — утечка в kernel​
  • Processes → сортировка по "Private Bytes" покажет процесс-виновник​

Временное решение:

REM Очистка Standby List (освобождает кэш)

REM Требуется утилита RAMMap.exe или EmptyStandbyList.exe

RAMMap.exe -Et

Долгосрочное решение: Обновите проблемный драйвер или приложение​.

FAQ (Frequently Asked Questions) 📋

Вопрос 1: Нужно ли отключать файл подкачки при наличии 64 ГБ RAM?

Ответ: Нет, не рекомендуется даже с таким объёмом памяти. Pagefile выполняет важные функции помимо расширения RAM: гарантирует Commit Limit для приложений, сохраняет crash dumps при BSOD, используется специфичными программами (Adobe, SQL Server, игры). Установите минимальный размер 2-4 ГБ для страховки. Полное отключение может привести к отказам приложений при необычных нагрузках​.

Вопрос 2: Pagefile на SSD сокращает его срок службы — это правда?

Ответ: Это миф. Современные SSD имеют TBW (Total Bytes Written) 150-600+ ТБ. Pagefile генерирует лишь 8% от общей дисковой записи, а соотношение чтение:запись составляет 40:1 — это идеальный профиль для SSD. Даже при активной подкачке 10 ГБ/день SSD проживёт 40+ лет. Размещайте pagefile на самом быстром накопителе (NVMe → SATA SSD → HDD) для максимальной производительности​.

Вопрос 3: Какой размер pagefile оптимален для игр с 16 ГБ RAM?

Ответ: Для игр AAA с открытым миром (Cyberpunk, Starfield, Hogwarts Legacy) рекомендуется фиксированный pagefile 16 ГБ (Initial = Maximum = 16384 МБ). Это устраняет фрагментацию, предотвращает задержки при динамическом расширении и снижает traversal stutter (фризы при загрузке локаций) на 70-90%. Обязательно размещайте на NVMe SSD​​.

Вопрос 4: System Managed vs Custom Size — что лучше?

Ответ: Зависит от сценария. System Managed удобен для офисных ПК и систем с переменной нагрузкой (8-16 ГБ RAM), так как автоматически адаптируется. Однако динамическое расширение может вызывать задержки и фрагментацию. Custom Size (фиксированный Initial = Maximum) предпочтителен для геймеров, стримеров, видеомонтажа — обеспечивает стабильную производительность без спайков. На серверах Hyper-V Microsoft рекомендует System Managed​.

Вопрос 5: Можно ли разместить pagefile на двух разных дисках для ускорения?

Ответ: Это даёт эффект только при наличии двух физически разных дисков на разных контроллерах (актуально для серверов с RAID). На домашнем ПК с одним NVMe и одним SATA SSD лучше оставить pagefile только на NVMe — он и так быстрее. Размещение на разных разделах одного диска ухудшит производительность из-за увеличения seek time​.

Вопрос 6: После настройки pagefile появилась ошибка "Out of Memory" — что делать?

Ответ: Скорее всего, установлен слишком маленький Maximum Size. Проверьте текущий Commit Charge в Task Manager → Performance → Memory → Committed. Если значение приближается к Commit Limit, увеличьте Maximum Size pagefile на 50-100%. Временное решение — верните System Managed через PowerShell: $cs = Get-CimInstance Win32_ComputerSystem; $cs.AutomaticManagedPagefile = $true; Set-CimInstance -InputObject $cs; Restart-Computer​.

Вопрос 7: Нужно ли очищать pagefile при выключении для безопасности?

Ответ: Зависит от требований безопасности. Если у вас dual-boot, многопользовательская система или хранятся конфиденциальные данные — включите очистку через реестр ClearPageFileAtShutdown = 1. Это удалит чувствительную информацию, но замедлит выключение на 10-60 секунд. Более эффективное решение — включить BitLocker на системном диске, тогда pagefile будет зашифрован в реальном времени без замедления работы​.

Вывод и ключевые выводы 🎯

Файл подкачки Windows — это не пережиток прошлого и не враг производительности, а критически важный компонент архитектуры виртуальной памяти​. Мы развенчали основные мифы:

✅ Pagefile нужен даже с 64 ГБ RAM — для Commit Charge, crash dumps и специфичных приложений​

✅ SSD не изнашивается от pagefile — TBW современных накопителей достаточно на десятилетия, pagefile генерирует лишь 8% записи​

✅ Размер не должен быть "1.5x RAM" — это устаревший совет, используйте таблицы из статьи или System Managed​

✅ Memory Compression снижает использование pagefile на 50-70% — это встроенная оптимизация Windows 10/11, не отключайте без причины​

✅ Фиксированный размер (Initial = Maximum) лучше для стабильности — особенно в играх и видеомонтаже, устраняет задержки расширения​​

✅ Размещайте на самом быстром диске — NVMe даёт 3-4x прирост скорости vs SATA SSD​​

Ключевой принцип: Не отключайте pagefile полностью. Даже минимальный размер 1-2 ГБ — это страховка от непредвиденных ситуаций и требование многих приложений​.

Для быстрого старта:

  • 8 ГБ RAM: Custom 4096-12288 МБ
  • 16 ГБ RAM: Custom 8192-16384 МБ (гейминг) или System Managed (офис)
  • 32+ ГБ RAM: System Managed или Custom 2048-8192 МБ
  • Всегда проверяйте: Memory\% Committed Bytes In Use < 85%​

Используйте предоставленные PowerShell-скрипты для автоматической настройки, мониторьте производительность через Performance Monitor первые 1-2 недели после изменений. При проблемах — откатывайтесь к System Managed.

Подписывайтесь на канал "T.E.X.H.O Windows & Linux" для новых технических материалов, гайдов по оптимизации и разбора сложных кейсов! 🚀

-8

#Windows11 #Windows10 #FileПодкачки #PagefileSys #ВиртуальнаяПамять #VirtualMemory #OptimizaciaWindows #Windows11ОптимизацияПамяти #WindowsPerformance #SSD #NVMe #RAMOptimization #WindowsServer2025 #TechChannel #SysAdmin #WindowsTweaks #TEXHO #PowerShellСкрипты #WindowsRegistry #MemoryManagement #Windows24H2 #PerformanceTuning #Windows11Гайд #WindowsOptimization #ПроизводительностьПК #ОптимизацияИгр #ITGайды #РусскийIT #WindowsRussian #СистемноеАдминистрирование