Як зупинити Windows 8 від кешування великих файлів?


1

Редагувати

Відео файли, про які я розповідаю, не стосувалися LoL (гри). Це були окремі файли, які я особисто завантажував. З 8 ГБ, які використовувались тоді, гра вийшла з ладу, гра використовувала менше 500 Мб. Chrome використовував 1 Гб. Системні сервіси використовували менше 500 Мб, а все, що я працював, було менше 1 Гб. Моє середнє споживання пам’яті становить близько 2,5 ГБ - 3 Гб для всіх програм / ігор.

Редагувати

Використовуваний 6 Гб був після того, як я закрив гру та всі інші додатки. Коли гра закінчилась, усі 8 ГБ використовувались (не в режимі очікування або безкоштовно / недоступні для використання при необхідності), при цьому 5 ГБ кешованих MKV відеофайлів, які не були в режимі очікування / безкоштовно . У грі вдалося вийти з ладу з "поза пам'яттю", тому що у мене відключена віртуальна пам'ять (файл swap) (проблема полягає не в тому, що гра могла вийти з ладу, але чому ці великі MKV-відеофайли сиділи на всіх примусових пулах пам'яті гра до краху).

TL; DR

Windows 8 кешувала багато великих файлів MKV як активну пам'ять (не в режимі очікування). Ці MKV не були відкриті ні в одній програмі, і це було після декількох перезавантажень без відкриття MKV. Використання оперативної пам’яті RAM для випуску всіх «робочих наборів» очистило всі MKV з кешу оперативної пам’яті та зменшило моє використання оперативної пам’яті з 6 ГБ до 2 Гб.

Як мені це запобігти?

INTRO

У мене працює Windows 8 64bit з 8 ГБ оперативної пам’яті.

Я не використовую багато програм. Єдині «важкі» програми, які я використовую, це Chrome, League of Legends та, можливо, Malwarebytes. Не цілу партію.

І все-таки моя гра продовжувала збої з помилками пам'яті . Мене це дуже спантеличило, бо я знаю, що не використовував 8 ГБ ОЗУ тим, що робив.

Тож я дивлюся на диспетчер завдань і додаючи більшість речей в голові, я отримую близько 2 ГБ, використовуючи звіти про монітор ресурсів, що використовуються 6 Гб (без активних "важких" програм). Дійсно спантеличено зараз.

Детальніше ознайомтеся з програмою Ram Map . Це говорить мені про те, що картографічні файли, які використовують 4 Гб, не турбують мене, якщо він все знаходиться в режимі очікування або готовий випустити будь-коли . Але це було не так ... усі 4 Гб були активними не в режимі очікування .

Тож я копав глибше, перейшов до лістера і перерахував його за активною пам’яттю і знайшов винуватця ...


1
У вас відключений файл swap?
Скотт Чемберлен

Можливо, витік пам'яті драйвера.
Bigbio2002,

У мене вимкнено своп, тому що я знаю, що я не використовую достатньо програм для підходу до 8 Гб. Насправді після скидання пулу пам’яті я максимум на 3 ГБ, а всі основні програми, які я зазвичай використовую, є відкритими.
Кенні Паркер

опублікувати збережені дані RAMMap (rmp-файл): blogs.technet.com/b/askperf/archive/2010/08/13/…
magicandre1981

завантажте дані RAMMap. Мені потрібно подивитися на них, щоб тобі допомогти.
magicandre1981

Відповіді:


1

Програми Windows не мають "пам'яті", оскільки вони не мають оперативної пам'яті. Вони не мають адресної пам'яті. На практиці це відбувається лише з 32-бітними процесами, оскільки в кращому випадку вони можуть адресувати лише 4 ГБ (2 32 ), а часто лише 2 ГБ (2 31 ).

Крім того, оперативна пам'ять, що використовується для кешування файлів, доступна програмам, коли вони цього потребують. У Windows все ще було 2 Гб безкоштовно, так що, звичайно, не викидали кешовані файли. Навіщо це? Краще замість цього використовувати вільну пам'ять, коли програма запитує. (Але ваша програма, ймовірно, не могла просити більше 2 Гб)

Зауважте, що це виправляє помилку в попередніх версіях Windows (до XP), яка помилково звільняла кеш-пам'ять, навіть коли була доступна інша вільна пам'ять. Ви, здається, хочете цю помилку назад.


1
У них може не вистачити пам’яті, якщо адресний простір більший за загальну доступну віртуальну пам’ять (що може статися легко, якщо у вас відключений файл підкачки)
Скотт Чемберлен

@ScottChamberlain: Ну, це налаштування вашої системи для проблем, тому це не конфігурація за замовчуванням. У питанні це також не згадується, і 2 Гб оперативної пам'яті це все одно не має значення.
MSalters

Так, у мене був відключений своп. Ось чому програма насправді змогла вийти з ладу з помилкою "поза пам'яттю". Проблема полягала не в тому, чому вона вийшла з ладу, а в тому, що ці відеофайли MKV сиділи на всій моїй оперативній пам’яті, що робить її непридатною для інших програм (ці кешовані відеофайли не були в режимі очікування, вони були активною частиною пам'яті «відображених файлів» ). Я також редагував своє запитання, щоб тепер це відобразити.
Кенні Паркер

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

1

І Chrome, і гра не розроблені для запуску в системі без файлу swap, але передбачається, що буде файл swap і використовує набагато більше пам’яті, ніж «необхідний мінімум, необхідний» для запуску для покращення продуктивності.

Ваші варіанти - зв’язатися з розробниками League of Legends та Chrome, попросивши їх переписати програмне забезпечення, щоб вони не були зручними для файлів (це може призвести до зниження продуктивності програмного забезпечення, тому що їм потрібно витратити додаткові цикли процесора на пам'ять управління) або почніть використовувати файл своп.

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


Напевно, мені потрібно ще більше уточнити це. Я перевірив назви файлів у розділі "Підсумок файлів" у rammap. Файли не мали нічого спільного з LoL. Це були відеофайли, які я особисто завантажував.
Кенні Паркер

Відповідь все одно, гра не розроблена для запуску в системі без файлу своп. Ваші два варіанти все одно однакові.
Скотт Чемберлен

1
Я граю в цю гру протягом багатьох років без файлів своп. Він розбився лише тоді, коли моє використання оперативної пам’яті вперше за ці роки було 100%. Я відчуваю, що всі намагаються уникати актуального питання. Я зробив стільки змін та уточнень на таке просте запитання.
Кенні Паркер

1

"У мене вимкнено своп, тому що я знаю, що я не використовую достатньо програм для підходу до 8 ГБ"

Так ... помилки "поза пам'яттю", які ви бачите, говорять вам інакше.

Ви працюєте за принциповою помилкою.

Повідомлення «поза пам’яттю» не має нічого спільного з оперативною пам’яттю, і це не допоможе, навіть якщо всі ці файли на карті були зняті, навіть якщо вся ваша оперативна пам’ять була вільною.

Це стосується віртуальної пам’яті, а точніше, зарядки фіксації, яка не може перевищувати межу фіксації. Ліміт фіксації - це розмір оперативної пам’яті (не лише «вільної оперативної пам’яті»! Вся оперативна пам’ять) плюс поточний розмір вашого файлу сторінки.

Ваша гра, мабуть, вимагає величезного розподілу віртуального адресного простору. У вашій системі немає достатньої кількості комісій, щоб задовольнити запит, тому гра завершується.

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

Що стосується того, чому раніше ви могли запускати гру без файлу сторінки, питання не в тому, "хто використовує оперативну пам'ять", а в тому, "хто використовує плату за фіксацію". nb: Файли, відображені в кеш-файлах файлів, не сприяють стягненню плати (тому що самі файли є резервним сховищем; якщо для них немає місця в оперативній пам'яті, їх не потрібно ставити на сторінку файлу сторінки). Звичайно, також не передбачено перелік сторінок у режимі очікування.

Виправити це потрібно або додати оперативну пам’ять, або включити файл сторінки.

Детальніше тут: http://azius.com/blog/pagefile-yes1/ - друга частина. Але перша частина допомагає зрозуміти другу частину.


0

MKV-розгалужувачі, такі як LAV та Haali, відображають файл MKV у "резервну" пам'ять. Роздільник MKV Media Foundation Foundation Divx з якихось причин відображає файл MKV у «активну» пам’ять, витрачаючи величезну кількість оперативної пам’яті, не дозволяючи перерозподіляти її за необхідності.

Я вважаю, що сплітер MKV Divx Media Foundation MKV робить це неправильно, і спліттеру потрібно сказати, щоб він відображався в режимі очікування пам'яті, як і інші MKV-розгалужувачі.

У мене є кілька скріншотів із RAMMAP, в яких детально описується, як спліттер відображає пам'ять по-різному:

https://superuser.com/questions/778562/standby-memory-mapping-divx-media-foundation-splitter-mkv-playback-on-media

Якщо немає способу виправити це "активне" відображення, я, ймовірно, кусаю кулю та модернізую до 16 Гб оперативної пам'яті.


1
Програма не може відобразити нічого в режимі очікування. Це дія, яку вжив SuperFetch. Програма також не може відображати нічого безпосередньо в оперативній пам'яті. Файли відображаються у віртуальний адресний простір. Пейджер в ОС приносить сторінки з файлів в оперативну пам’ять під час доступу до них і виштовхує їх з «активних», оскільки вони більше не потрібні, або коли файл не буде зроблений.
Джеймі Ханрахан

1
Дякую, Джеймі. Я вважаю, що цієї проблеми тоді не було б із роздільником DivX Media Foundation, оскільки він може відображати лише віртуальний адресний простір. Проблема існувала б у функціонуванні пейджера в ОС, приведення файлів в активну оперативну пам'ять при використанні спліттера Divx Media Foundation. Цікаво, чи існує спосіб відключити пейджер від відображення MKV-файлів до активної оперативної пам’яті при використанні Divx Media Foundation Splitter.
MathewCNichols

Гм ... Як ви пропонуєте спліттеру працювати над даними у файлі MKV, якщо дані не внесені в "активну оперативну пам'ять"? Процесор не може маніпулювати тим, чого немає в оперативній пам'яті. Все, що він може зробити з даними у файлі, - це прочитати їх в оперативну пам'ять або записати їх з оперативної пам'яті у файл.
Джеймі Ханрахан

О, і ... LAV та Haali не "відображають файл MKV в режим очікування". Вони переносять вміст файлу у свій віртуальний адресний простір, а пейджер ОС вводить його в оперативну пам’ять по мірі доступу. Він закінчується в режимі очікування або тоді, коли програма виконана з цими сторінками, або коли SuperFetch каже "о, вам може знадобитися цей файл ще раз, я залишу його / введу його в пам'ять очікування". Але сторінки в режимі очікування настільки ж доступні для негайного використання, як і "Безкоштовно". Вони не представляють собою втрати наявної оперативної пам’яті. І вони не мають нічого спільного з повідомленням "поза пам'яттю".
Джеймі Ханрахан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.