Якась вигода чи шкода від видалення файлу сторінки на оперативній пам’яті об'ємом 8 Гб?


213

Я запускаю Windows 7 на двоядерному, x64 AMD з 8 ГБ оперативної пам’яті.

Мені навіть потрібен файл сторінки?

Чи допоможе його зняття чи пошкодить продуктивність?

Чи змінює це значення, якщо це сервер чи робочий стіл?

Чи відрізняється Windows 7 від Windows 2008 у файлі сторінки?

Відповіді:


299

Версія TL; DR: Нехай Windows обробляє налаштування вашої пам’яті / сторінки. Люди в МС витратили набагато більше годин на роздуми над цими питаннями, ніж більшість із нас систематиків.

Багато людей, здається, припускають, що Windows запитує дані у файл сторінки на вимогу. EG: щось хоче багато пам'яті, і не вистачає оперативної пам’яті, щоб заповнити потребу, тому Windows починає шалено записувати дані з оперативної пам’яті на диск в цю останню хвилину, щоб вона могла звільнити оперативну пам’ять для нових вимог.

Це неправильно. Під капотом йде більше. Взагалі кажучи, Windows підтримує резервну копію , це означає, що вона хоче бачити все, що є в пам'яті, також десь на диску. Тепер, коли щось приходить і вимагає багато пам'яті, Windows може очистити оперативну пам’ять дуже швидко, тому що ці дані вже є на диску, готові до того, щоб перезавантажитись в оперативну пам'ять, якщо вона вимагається. Тож можна сказати, що значна частина того, що є у файлі сторінки, також є в оперативній пам'яті; дані були попередньо розміщені у файлі сторінок, щоб прискорити нові потреби в розподілі пам'яті.

Опис конкретних механізмів, що задіяні, займе багато сторінок (див. Розділ 7 внутрішніх справ Windows , і зауважте, що незабаром з’явиться нове видання ), але слід зазначити кілька приємних речей. По-перше, велика частина того, що є в оперативній пам’яті, по суті вже є на диску - програмний код, отриманий з виконуваного файлу або DLL, наприклад. Тому це не потрібно записувати у файл сторінки; Windows може просто відслідковувати, звідки були отримані біти. По-друге, Windows відслідковує, які дані в оперативній пам’яті найчастіше використовуються, і таким чином очищає від оперативної пам’яті ті дані, які пройшли найдовше без доступу до них.

Видалення файлу сторінки повністю може призвести до більшого обертання диска. Уявіть простий сценарій, коли деякий додаток запускається і вимагає 80% наявної оперативної пам’яті. Це призведе до витіснення поточного виконуваного коду з оперативної пам'яті - можливо, навіть коду ОС. Тепер кожного разу, коли іншим додаткам - або самій ОС (!!) потрібен доступ до цих даних, ОС повинна розміщувати їх на сторінці з резервного зберігання на диску, що призводить до значного удару. Оскільки без файлу сторінок, який служить резервним сховищем для перехідних даних, єдине, що може бути піддано підключення до сторінки, - це виконувані файли та DLL-файли, які мали б почати зберігати резервні файли.

Звичайно, існує безліч сценаріїв використання ресурсів. Не виключено, що у вас є один із сценаріїв, згідно з яким не було б негативних наслідків від видалення файлів сторінки, але це меншість. У більшості випадків видалення або зменшення файлу сторінок призведе до зниження продуктивності за найвищих сценаріїв використання ресурсів.

Деякі посилання:

dmo відзначив нещодавню публікацію Еріка Ліпперта, яка допомагає зрозуміти віртуальну пам'ять (хоча вона менш пов'язана з питанням). Я викладаю це, тому що я підозрюю, що деякі люди не прокручуватимуть інших відповідей - але якщо ви вважаєте це цінним, ви зобов'язані dmo голосувати, тому використовуйте посилання, щоб потрапити туди!


25
Для Джеффа та Джоеля: він римується з "качками"
quux

2
На Solaris це було / ще більше задіяне. Файл swap відображається на оперативному диску, як tmpfs, тому пам'ять завжди майже повна - але, очевидно, можна довести, що це оптимальна стратегія.
Мартін Бекетт

2
Я давно вважаю, що замість того, щоб дозволяти Windows управляти розміром файлу моєї сторінки, я повинен встановити її на фіксовану кількість (наприклад, мінімум 2 Гб, макс. 2 ГБ), тому що дозволяючи зростати та скорочуватися, це може спричинити проблеми з фрагментацією. Це гарне мислення, чи я повинен дотримуватися вашого першого рядка і дозволити Windows впоратися з усім?
Джон Фухі

2
@Mehrdad: Тому що вам не потрібно залишати 50% оперативної пам'яті безкоштовно. Звичайно, ви можете це зробити, але ви втратите 50% фізичної оперативної пам’яті, яку можете використовувати як кеш диска для активних даних. Вільна оперативна пам’ять - ознака неефективності, це як вантажні автомобілі FedEx у депо, а не в дорозі. Це означає, що ви рухаєтеся не стільки вантажу, скільки могли, тому що витрачаєте занадто багато часу на завантаження та розвантаження.
Девід Шварц

2
@Mehrdad: Проблема полягає в тому, що немає файлу сторінки, є багато даних, які потрібно зберігати в оперативній пам’яті, хоча це, швидше за все, ніколи не буде доступним. Розглянемо, наприклад, будь-яку пам'ять, виділену процесом, який запустився при запуску системи, але пропонує послугу, яка не буде використовуватися днями. Система не може довести, що дані не будуть доступні, і для її зберігання немає іншого місця, крім оперативної пам'яті. Таким чином, кеш диска скорочується, коли дані зберігаються в оперативній пам’яті, до якої не можна було звертатися цілими днями.
Девід Шварц

80

Нещодавно Ерік Ліпперт написав запис у блозі, де розповів, як Windows управляє пам'яттю. Коротше кажучи, модель пам'яті Windows може розглядатися як дисковий накопичувач, де оперативна пам'ять виконує функцію кешу, що підвищує продуктивність.


47

Як я бачу з інших відповідей, я єдиний, хто відключив файл сторінки і ніколи не шкодував про це. Чудово :-)

Як вдома, так і на роботі я маю Vista 64-бітну з 8 ГБ оперативної пам’яті. У обох файлів сторінки вимкнено. На роботі для мене немає нічого незвичайного, коли у вас є кілька екземплярів Visual Studio 2008, Virtual PC з Windows XP, 2 екземпляри SQL Server та Internet Explorer 8 з великою кількістю вкладок, які працюють разом. Я рідко досягаю 80% пам'яті.

Я також використовую гібридний сон щодня (сплячка зі сном) без проблем.

Я почав експериментувати з цим, коли у мене був Windows XP з 2 ГБ оперативної пам’яті, і я дійсно побачив різницю. Класичним прикладом було те, коли піктограми на панелі керування перестали показуватись одна за одною, але все відразу. Також різко збільшився час запуску Firefox / Thunderbird. Все почало працювати відразу після того, як я щось натиснув. На жаль, 2 Гб було занадто мало для використання моїх програм (Visual Studio 2008, Virtual PC та SQL Server), тому я ввімкнув його назад.

Але зараз з 8 Гб я ніколи не хочу повертатися назад і вмикати файл сторінки.

Для тих, хто говорить про крайні випадки, візьміть цей з мого часу Windows XP.
Коли ви намагаєтеся завантажити велику зведену таблицю в Excel із запиту SQL, Excel 2000 досить швидко збільшує використання пам'яті.
Якщо у вас відключений файл сторінки - ви зачекаєте трохи, і тоді Excel підірветься, і система очистить всю пам'ять після нього.
Якщо у вас включений файл сторінки - ви зачекаєте деякий час, і коли помітите, що щось не так, ви майже нічого не можете зробити зі своєю системою. Ваш жорсткий диск працює як пекло, і навіть якщо вам якимось чином вдасться запустити диспетчер завдань (після кількох хвилин очікування) і вбити, excel.exeви повинні зачекати хвилину або близько того, поки система не завантажить все назад із файла сторінки.
Як я бачив пізніше, Excel 2003 обробляє ту саму зведену таблицю без проблем із відключеним файлом сторінки - тому це не була "занадто великою проблемою набору даних".

Тож, на мою думку, відключений файл сторінки навіть захищає вас іноді від погано написаних програм.

Незабаром: якщо вам відомо про використання вашої пам’яті - можете сміливо її відключити.

Редагувати: Я просто хочу додати, що я встановив Windows Vista SP2 без проблем.


3
У мене вимкнено файл сторінки, і я пошкодував його в той момент, коли я дійсно використав свою пам’ять. Тож будьте щасливі, що у вас більше пам’яті, ніж потрібно.
Сем

7
+1, "я теж" :-). Та сама історія - 8 Гб пам’яті, Vista x64, запуск Visual Studio з ReSharper + SQL Server Express + IIS + 1-2 віртуальних машин (кожна з пам’яттю 1500 Мб) + купа утиліт - ніколи не виникало проблем.
Мілан Гардіян

21
Мені подобається, як всі кажуть: «Майкрософт витратив багато годин на роздуми над цією проблемою, тому не воюйте з нею», але повністю ігноруйте реальний досвід. У мене був вимкнутий файл підкачки з XP та ніколи не пошкодував про це. Це все одно, що комп’ютер отримав дивовижну ін'єкцію.
AngryHacker

4
Це досить стандартна практика відключати пейджингові повідомлення на серверах, які завантажуються iSCSI, перехід через SAN буде помітно повільним. Вам просто потрібно спостерігати за використанням пам'яті та триматися подалі від макс.
Кріс S

6
-1 Я не бачу жодних посилань у цій відповіді. У мене насправді відбувся збій у системі, оскільки файл сторінки було вимкнено, а пам’ять у Paged Pool запустилася. І все-таки моє фізичне використання пам'яті було лише в 2 Гб ...
Тамара Війсман

34

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

Перфмон - це інструмент для цього; не диспетчер завдань. Ключовим лічильником є пам'ять - введення сторінок / сек . Це конкретно графік помилок на твердій сторінці - тих, де потрібно прочитати з диска, перш ніж процес може тривати. Несправності м'яких сторінок (які є більшістю елементів, зафіксованих за замовчуванням Сторінка помилок / лічильник; я рекомендую ігнорувати цей лічильник!) Насправді не є проблемою; вони просто показують елементи, які зазвичай читаються з оперативної пам'яті.

Графік Perfmon http://g.imagehost.org/0383/perfmon-paging.png

Наведений вище приклад системи, яка не турбується, пам'ятаючи пам'ять. Дуже періодично виникає сплеск важких несправностей - цього не уникнути, оскільки жорсткі диски завжди більше, ніж оперативна пам'ять. Але графік багато в чому рівний нулю. Тож ОС працює з бек-магазину дуже рідко.

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

Зручним додатковим лічильником для моніторингу є PhysicalDisk - Сер. Довжина черги (всі екземпляри). Це покаже, наскільки ваші зміни впливають на саме використання диска. Налагоджена система покаже це середнє значення лічильника на рівні 4 або менше за шпиндель .


1
задихнувшись, хтось навіть виходить зі свого шляху, щоб продемонструвати, як перевірити файл свопу. приголомшливий
cgp

1
Мертве посилання на картинку. Потреби виправлені.
kinokijuf

Так, "ImageHost.org закритий"
Пітер Мортенсен

34

Я без перешкод працював у вікні 8 ГБ Vista x64 без файлу сторінки протягом багатьох років.

Проблеми виникли, коли я справді використовував свою пам’ять!

Три тижні тому я почав редагувати дійсно великі файли зображень (~ 2 Гб) у Photoshop. Один сеанс редагування з’їв всю мою пам'ять. Проблема: мені не вдалося зберегти свою роботу, оскільки для збереження файлу Photoshop потрібно більше пам’яті!

А оскільки саме Photoshop з’їдав усю пам’ять, я навіть не міг звільнити пам’ять, закривши програми (ну я це зробив, але це було замало, щоб допомогти).

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

Так, він буде працювати чудово більшу частину часу. Але момент, коли він порушиться, може бути болісним.


7
вам слід економити частіше: D, щоб мінімізувати збитки
alexandrul

1
Неважко сказати, коли економія займає кілька хвилин, це піта.
Сем

Ми всі щасливі, якщо використовуєте більш складне програмне забезпечення, але іноді "збій" закінчується узгодженням з "О дерьмо, я не заощаджував".
Деймон

19

Хоча відповіді тут досить добре висвітлювали тему, я все ж рекомендую це прочитати:

http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

Він говорить про розмір ПФ майже в кінці:

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

Мені дуже подобаються статті Марка.


+1, проста за посиланням Марка Русиновича. Варто зазначити, що win7 навіть спливає повідомлення, вказуючи на те, що ви не зможете "відстежувати системні проблеми", якщо ви вимкнете файл swap.
cgp

13

Найкраща відповідь, яку я можу придумати, - це те, що при нормальному навантаженні ви можете не використовувати 8 Гб, але це несподівані навантаження, де ви зіткнетеся з проблемою.

З файлом сторінки система принаймні буде повільно працювати, як тільки вона починає потрапляти на сторінку. Але якщо ви видалите файл сторінки, він просто помре (з того, що я знаю).

Крім того, 8 Гб зараз здається дуже багато, але через кілька років це може вважатися мінімальним обсягом пам'яті для багатьох програм.

У будь-якому випадку - я б рекомендував зберігати принаймні невеликий файл сторінки; але інші, будь ласка, виправте мене, якщо я поза базою.


4
Я б пішов трохи далі і не обмежував файл сторінки. Це не дуже покращує речі. Нехай вікна це роблять ... вони краще знають.
Майкл Харен

1
Щойно спробував використовувати Media Player Classic для завантаження 6 Гб mkv-файлу. Це вирвало мене з оперативної пам’яті та пам’яті сторінок. Повернувся до VLC досить швидко. +1 для "ніколи не знаєш, у що ти наткнешся". Врешті-решт MPC вийшов з ладу, і моя оперативна пам’ять була відновлена, але що робити, якщо ви отримаєте DLL у програмному забезпеченні сторонніх виробників із витоком пам’яті? У вас буде набагато більше пробігу, якщо у вас є пам'ять, що підтримується диском, щоб допомогти вам.
mpbloch

1
Плюс до речі, у чому хороша наявність 8 Гб, якщо вам доведеться жити в постійному страху перед тим, як її фактично використовувати ?!
Девід Шварц

"Зберігати хоча б невеликий файл сторінки" мені здається трохи дивним, оскільки не зрозуміло, як Windows буде ним користуватися. Наприклад, це може зірвати його навіть більше, ніж більший файл сторінок, який пропонує більше місця - я здогадуюсь, але поки немає надійного джерела, я б вважав, що поради щодо невеликих сторінок можуть бути шкідливими, і рекомендую замість цього стандартну практику.
мафу

6

Ви не згадали, чи це 64-бітове видання Windows, але я думаю, що так.

Файл сторінки обслуговує багато речей, у тому числі генерує дамп пам'яті у випадку BSoD (Blue Screen of Death).

Якщо у вас немає файлу сторінки, Windows не зможе видати сторінку на диск, якщо не вистачить пам'яті. Ви можете подумати, що з 8 Гб ви не досягнете цієї межі. Але у вас можуть бути погані програми, які протікають з часом пам'яті.

Я думаю, що це не дозволить вам перейти у сплячку / режим очікування без файлу сторінки (але я ще не намагався).

Windows 7/2008 / Vista не змінює використання файлу сторінки.

Я побачив одне пояснення від Марка Русиновича (Microsoft Fellow), що пояснює, що Windows може бути повільніше без файлу сторінки, ніж з файлом сторінки (навіть з великою кількістю оперативної пам’яті). Але я не можу знайти першопричину.

У вас немає місця на диску? Я б тримав мінімум 1 ГБ, щоб мати можливість скидання ядра у випадку BSoD.


Ви це маєте на увазі? blogs.technet.com/markrussinovich/archive/2008/11/17/… Якщо так, його поради кульгаві. Він каже, що файл сторінки підвищить продуктивність, тому що якщо він дасть більше оперативної пам’яті іншим програмам. Правда, якщо у вас мало барана. Але якщо у вас більш ніж достатньо, файл сторінки ніколи не буде швидшим.
Піролістичний

це було у відеосистемі із Саломоном. Це мало відношення до пулу сторінок ядра
Матьє Шато

Ви не можете опублікувати "відповідь", коли не маєте уявлення: у мене 32-розрядний ноутбук Windows Vista з 4 Гб оперативної пам’яті, і я постійно його перебуваю в режимі очікування. Чи можете ви хоча б обмежити себе у наданні відповідей на запитання, на які ви насправді знаєте відповіді?
ПП.

Що намагався сказати ПП: У процесі сплячки використовується файл, відокремлений від файлу swap, тому це не проблема в цьому випадку.
мафу

Піролістичний, вам, мабуть, занадто пізно, щоб це побачити, але переверніть свою заяву і сформулюйте це як питання: Коли файл файлів сторінки щось уповільнює? Гарна відповідь на це підтвердила б вашу теорію.
quux

5

У мене вимкнено файл сторінки (8 Гб на ноутбуці x86) і виникли дві проблеми навіть з 2500 МБ безкоштовно:

  1. Помилка ASP.NET при спробі активувати послугу WCF : Не вдалося перевірити ворота пам'яті, оскільки вільна пам'ять (399,556,608 байт) становить менше 5% від загальної пам'яті. Як результат, послуга буде недоступною для вхідних запитів. Щоб вирішити це, або зменшіть навантаження на машину або відрегулюйте значення minFreeMemoryPercentageToActivateService на елементі конфігурації serviceHostingEnvironment.

    Досить 3,7 ГБ менше 5% від 8 ГБ я ніколи не дізнаюся !!

  2. Отримання Закрити програми для запобігання втрати інформації діалог: Коли 75% моєї пам'яті використовується я отримую діалогове вікно , яке повідомить мені закрити програми. Ви можете вимкнути це за допомогою зміни реєстру (або, можливо , відключивши службу "Політика діагностики").

Врешті-решт я вирішив просто знову увімкнути його. Windows просто і просто не було розроблено для використання без файлу сторінки. Оптимізовано для роботи з пейджингом, не без цього. Якщо ви плануєте використовувати більше 75% своєї пам’яті і не хочете возитися зі своїм реєстром - то, можливо, це не для вас.


1
Помилка ASP.NET вважає мене 32-розрядною проблемою, але якщо вказане вами число є правильним (399556608 = 399,556,608), то помилка правильна - ~ 400 Мб становить приблизно 5% від 8 Гб.
огорожа

@fencepost гарний улов - напевно, прочитав це як kb чомусь. дивно
Саймон

5

Єдина особа, яка може сказати вам, чи потрібні вашим серверам або робочим станціям файл сторінки, це ви з ретельним використанням монітора продуктивності або як це називається в ці дні. Які програми ви використовуєте, яку користь вони бачать, і що найвище можливе використання пам'яті потенційно ви можете побачити?

Чи варто стабільність можливо йти на компроміс заради економії хвилини грошей на менших жорстких дисках?

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

Що я можу вам сказати, це те, що при видаленні файлу сторінки набагато більша ймовірність нашкодити, ніж допомогти. Я не бачу причини, чому б у вас її не було - я впевнений, що може бути кілька випадків, коли я помиляюся на цьому, але це зовсім інша область.


2

Ваша загальна доступна пам'ять - це ваш файл сторінки + фактична пам'ять.

Ключовим питанням є те, чи очікується загальне використання пам'яті для всіх додатків та використання операційної системи 8 Гб. Якщо ваш середній обсяг пам’яті становить 2 Гб, а максимум використання пам'яті становить лише 4 ГБ, то мати файл сторінки безглуздо Якщо ваше максимальне використання пам’яті ближче до 6-7 Гбіт або більше, ніж корисно мати файл сторінки.

PS: Не забудьте забезпечити зростання в майбутньому!


Ви не маєте на увазі потенційно наявну загальну пам'ять? Більшість систем пейджингу зберігають копії сторінки.
Черга Jé

Зверніть увагу, що є також пам'ять для підключення до базованих даних, яка може виснажуватись, навіть якщо ви використовуєте лише 2 Гб фізичної пам'яті.
Тамара Війсман

2

Здається, дуже багато людей, які сильно обмежені, мають думку з цього приводу, але ніколи насправді не намагалися запустити свій комп'ютер без файлу сторінки.

Мало хто, якщо майже ніхто, не пробував. Ще менше, здається, не знають, як Windows поводиться з файлом сторінки. Він не просто "заповнюється", коли у вас закінчується фізична оперативна пам'ять. Надіюсь, більшість з вас навіть не знали, що ваша "вільна" ОЗУ використовується як кеш файлів!

Ви МОЖЕТЕ отримати значні покращення продуктивності, відключивши файл сторінки. Ваша система буде більш чутливою до помилок, що не знаходяться в пам'яті (а чи знаєте ви, як ваші програми реагують у такому сценарії - здебільшого ОС просто припиняє програму). Час запуску з режиму очікування або тривалого простою буде набагато швидшим.

Якщо корпорація Майкрософт фактично дозволила вам встановити параметр, завдяки якому файл сторінки ТИЛЬКО звикає, коли немає фізичної оперативної пам’яті (а всі файлові буфери були викинуті), я б подумав, що від вимкнення файлу сторінки було б мало користі.


Якщо вимкнути файл сторінки, це призведе до зниження продуктивності, ви не побачите жодного покращення продуктивності від впровадження навантаження на пам'ять. Використання файлу сторінки лише тоді, коли у вас немає пам’яті, звичайно, не те, що ви хочете ...
Tamara Wijsman

-3

Це антидотично, але ми запускаємо термінальний сервер Windows Server 2003 для приблизно 20 користувачів, з 10-15 вхідними моментами та 8 ГБ оперативної пам’яті. Ми не запускаємо файл зі сторінкою, і наш сервер працює швидше, ніж раніше. Це, очевидно, не є рішенням для всього, але ми вже два роки так бігаємо і не мали жодних проблем, про які я знаю.


1
У вас є проблеми, але ви їх не помічаєте, подумайте, як збільшене завантаження пам’яті може сповільнити одночасний запит. Увімкнення файлу сторінки робить такі моменти більш спритними ...
Тамара Війсман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.