Як я можу обмежити або навіть відключити кеш файлів на Windows Server 2008R2?


9

Є машина, з дуже швидким RAID-масивом та швидким підключенням до Інтернету. Але він отримав лише 8 Гб пам’яті, який вичерпується дуже швидко, коли завантаження продовжується.

Будь-які ідеї, як я можу відключити або обмежити кеш?
(Я намагався вимкнути кеш запису від диспетчера пристроїв. Але це просто кеш запису, і це не допомогло.)


Будь-яке відношення до цього? superuser.com/questions/415140/…
Der Hochstapler

@OliverSalzburg На жаль, зараз він не в режимі очікування. Режим очікування чудовий, і він повинен бути ВКЛ завжди. Це хороший матеріал. Але зараз чомусь цей баран звикає як «Активний». (Я використовую uTorrent для тестування швидкості, і при швидкій передачі це починається.)
Шикі

Відповіді:


4

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


9
Скажіть, будь ласка, про те, що в моєму Windows 7, який замінив усі програми просто для того, щоб вставити відео-файл у кеш, кодуючи його - файл, який буде прочитаний рівно один раз - і розбився весь ящик.
Jan Schejbal

Це може залежати від параметра LargeSystemCache. З будь-якої причини у мене він був встановлений (напевно, ще з того часу, коли в мене була оперативна пам'ять, більш ніж достатньо для всього, що я робив).
Jan Schejbal

@JanSchejbal, це налаштування я вже не міг згадати через те, що я відмовився від Windows кілька років тому. Зазвичай ядро ​​намагається замінити сторінки з процесів, які деякий час стоять у режимі очікування, оскільки цю пам'ять можна краще використовувати для кешування файлів для активних процесів. Це налаштування робить це більш агресивним у цьому.
psusi

@JanSchejbal ключ реєстру LargeSystemCache більше не використовується з 2008р2 згідно blogs.technet.com/b/askperf/archive/2008/02/01/…
BeowulfNode42

3

Вам потрібно викликати системний API SetSystemFileCacheSize ()
Документовано тут: http://msdn.microsoft.com/en-us/library/aa965240.aspx

Деякі програми GUI дозволяють це: http://technet.microsoft.com/en-us/sysinternals/bb897561
Але ви можете віддати перевагу CLI, щоб автоматично запустити його при запуску системи: http://www.uwe-sieber.de/ntcacheset_e .html (подивіться в середині сторінки, це працює для 2k8)

Або просто напишіть скрипт повноважень, що викликає SetSystemFileCacheSize ()

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


хм ... поки що, так добре! Я скоро звітую.
Шики

Це дивно. Я встановив робочий розмір MAXIMUM в 1 гігабайт, і це просто робить його можливим. Він піде набагато вище, це не хвилює значення чи обмеження. Чому?
Шики

Ви повинні обов'язково стежити за правильним значенням. Використовуйте для цього утиліту кеш-пам'яті.
Григорій МОУСАТ

2

Ми також випробували цю проблему на Windows Server 2008 R2 у нашій компанії. У нашому випадку машина повністю застрягла. Здається, це помилка на цій серверній версії Windows, оскільки вона не виникала за тих же обставин ні на моїй значно меншій машині Windows 7, що працює в VirtualBox, ні в Linux.

Ви можете встановити кеш на певний ліміт за допомогою API, оскільки його вже опублікували інші, але ви можете знайти додатки для його прямого використання, такі як SetSystemFileCacheSize.exe або NT Cache Setter .

Мінусом є те, що вам потрібно встановити кеш після кожного перезавантаження. Ви також можете промити весь кеш за один раз за допомогою цього.

Ми встановлюємо кеш файлів на нашому VM, що має 14 ГБ оперативної пам’яті, до 4 ГБ, і він працює. Також флеш чудово працює, і ви можете бачити його безпосередньо в диспетчері завдань.

Зразки командного рядка:

  • Показати поточні налаштування Windows:

    SetSystemFileCacheSize.exe
    
  • Показати довідку:

    SetSystemFileCacheSize.exe /?
    
  • Встановіть мінімальний розмір до 8 МБ, а максимальний - 128 Мб:

    SetSystemFileCacheSize.exe 8 128
    
  • Вимкніть мінімальний розмір і встановіть максимальний розмір на 128 Мб:

    SetSystemFileCacheSize.exe off 128
    
  • Вимкнути мінімальний та максимальний розміри:

    SetSystemFileCacheSize.exe off off
    
  • Промийте кеш файлу:

    SetSystemFileCacheSize.exe flush
    

Примітка. Інструмент потрібно запускати з правами адміністратора.


0

Щоб обмежити кеш файлів, переконайтеся, що не ввімкнено Максимальне поле для продуктивності спільного використання файлів, і ви можете вказати мінімальний обсяг кешу файлу пам'яті, вибравши Мінімізувати використану пам'ять або Баланс.

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


Параметр властивостей недоступний для спільного використання принтера та файлів. :) Як би там не було, це кеш-пам'ять. Але в Раммапі кожен окремий файл потрапляє до списку файлів, а активна пам'ять просто продовжує рости та зростати.
Шики
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.