Сторінкові файли - еннее пристрій windows (гл

сторінкові файли

Сторінкові файли (page files) призначені для зберігання модифікованих сторінок, які використовуються якимось процесом, але повинні бути вивантажені з пам'яті на диск. Простір в сторінковому файлі резервується, коли відбувається початкова передача сторінок, але реальні ділянки сторінкового файлу не вибираються до тих пір, поки сторінки не вивантажуються на диск. Важливо відзначити, що система накладає обмеження на число переданих закритих сторінок. Тому значення лічильника продуктивності Process: Page File Bytes насправді відображає сумарний обсяг закритої пам'яті, переданої процесам. Відповідні сторінки можуть перебувати в сторінковому файлі (частково або повністю) або, навпаки, у фізичній пам'яті. (B суті цей лічильник ідентичний лічильнику Process: Private Bytes.)

При завантаженні системи процес диспетчера сеансів (див. Розділ 4) зчитує список сторінкових файлів, які він повинен відкрити. Цей список зберігається в параметрі реєстру HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PagingFiles. Цей багатостроковий параметр містить ім'я, мінімальний і максимальний розміри кожного сторінкового файлу. Windows підтримує до 16 сторінкових файлів. B х86-системах зі звичайним ядром кожен сторінковий файл може бути розміром до 4095 Мб, в x64- і х86-системах з РАЕ-ядром - до 16 Тб, а в IА64-системах - до 32 Тб. Сторінкові файли можна видалити під час роботи системи, так як процес System (див. Розділ 2) відкриває описатель кожного сторінкового файлу. Той факт, що сторінкові файли відкриваються системою, пояснює, чому вбудоване засіб дефрагментації не в змозі дефрагментировать сторінковий файл в процесі роботи системи. Для дефрагментації сторінкового файлу використовуйте безкоштовну утиліту Pagedefrag. B ній застосовується той же підхід, що й у інших сторонніх утиліти дефрагментації: вона запускає свій процес дефрагментації на самому ранньому етапі завантаження системи, ще до відкриття сторінкових файлів диспетчером сеансів.

Оскільки сторінковий файл містить частини віртуальної пам'яті процесів і ядра, для більшої безпеки його можна налаштувати на очистку при виключенні системи. Для цього встановіть параметр реєстру HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ ClearPageFile-AtShutdown в 1. Інакше в сторінковому файлі залишаться ті дані, які були вивантажені в нього до моменту виключення системи. І до цих даних зможе звернутися будь-хто, хто отримає фізичний доступ до комп'ютера.


Створити новий сторінковий файл можна через Control Panel. При цьому викликається системний сервіс NtCreatePagingFile, визначений у Ntdll.dll і призначений тільки для внутрішнього використання. Сторінкові файли завжди створюються незжатими, навіть якщо знаходяться в стислому каталозі. Для захисту нових сторінкових файлів від видалення їх описатели дублюються в процес System.

B таблиці 7-15 перераховані лічильники продуктивності, за допомогою яких можна досліджувати використання переданої закритою пам'яті в рамках як всієї системи, так і кожного сторінкового файлу. K жаль, визначити співвідношення резидентної і нерезидентної (що знаходиться в сторінковому файлі) частин закритою пам'яті, яка передана якомусь процесу, не можна.

Зауважте, що ці лічильники можуть допомогти в підборі розміру сторінкового файлу. Виходити з обсягу оперативної пам'яті (RAM) немає сенсу: чим більше у вас пам'яті, тим менше ймовірність того, що вам знадобиться вивантаження даних на диск. Щоб визначити, який розмір сторінкового файлу дійсно потрібен у вашій системі з урахуванням використовуваних вами додатків, перевірте пікове значення переданої пам'яті, яке відображається в розділі Commit Charge (Виділення пам'яті) на вкладці Performance

(Швидкодія) диспетчера задач, а також у вікні System Information утиліти Process Explorer. Цей показник відображає піковий обсяг сторінкового файлу з моменту завантаження системи, який знадобився б в тому випадку, якщо б системі довелося вивантажити всю закриту передану віртуальну пам'ять (що трапляється вкрай рідко).

Сторінкові файли - еннее пристрій windows (гл

Якщо сторінковий файл у вашій системі занадто великий, Windows не використовуватиме зайвий простір; інакше кажучи, збільшення розміру сторінкового файлу не змінить продуктивність системи - просто у неї буде більше неподільні (non-shareable) переданої віртуальної пам'яті. Ho якщо сторінковий файл занадто малий для запускається вами набору додатків, може з'явитися повідомлення про помилку «system running low on virtual memory» (в системі не вистачає віртуальної пам'яті). B такому разі спочатку перевірте, чи не дає якийсь процес витоку пам'яті. Для цього подивіться на лічильники байтів закритою пам'яті для процесів в стовпці VM Size (Обсяг віртуальної пам'яті) на вкладці Processes (Процеси) диспетчера задач. Якщо жоден з процесів начебто не дає витоку пам'яті, виконайте операції, описані в експерименті «Аналіз витоку пам'яті в пулі» раніше в цій главі.

ЕКСПЕРИМЕНТ: спостерігаємо за використанням сторінкового файлу через диспетчер задач

Ви можете дізнатися, як використовується передана пам'ять, і за допомогою Task Manager (Диспетчер завдань), відкривши в ньому вкладку Performance (Швидкодія). При цьому ви побачите такі лічильники, пов'язані зі сторінковими файлами.

Сторінкові файли - еннее пристрій windows (гл

Додаткову інформацію ви знайдете у вікні System Information утиліти Process Explorer.

Сторінкові файли - еннее пристрій windows (гл

Схожі статті