Проблем с кеша на файловата система в Windows Server 2008 R2

На един от файлови сървъри при работа с Windows Server 2008 R2 възникна проблем с паметта с висок произволен достъп (RAM), което доведе до проблеми с работата на сървъра и услугите, работещи на него. Както се оказа, паметта беше запушена системен кеш на файлове с метаданни на файловата система. Всички файлови сървъри с голям брой файлове, до които потребителят има достъп, са потенциално засегнати. Най-критичният проблем е за 64-битовите версии на Windows, при които размерът на метафайла в паметта може да заеме почти целия капацитет на инсталираната RAM. В статията ще разберем как проблемът се проявява, ще идентифицираме неговите източници и решения.

Съдържание:

  • Високо натоварване на RAM паметта на файловия сървър на Windows
  • Какво е метафайл в Windows??
  • Бързо изчистете MFT метафайла в паметта
  • Динамичен кеш услуга за управление на кеш на файлове

Високо натоварване на RAM паметта на файловия сървър на Windows

Проблемът се проявява по следния начин: в Task Manager (Task Manager) виждаме, че на сървъра оперативната памет е заета от 95-99%.

Отивайки в раздела за процеса, няма да можете да намерите някакъв изтичащ процес с необичайно висока консумация на памет. Освен това, ако произволно добавите паметта, заета от всички процеси, показани в диспечера на задачите, не можете дори да близо до 50% от физическата памет, инсталирана на сървъра. Та кой изяде целия спомен?

Помощната програма RAMMap (Марк Русинович) може да даде реална разбивка на използването на RAM. Изтегляме архива с помощната програма и пускаме файла RAMMap.exe с права на администратор от архива. етикет употреба брои, виждаме, че най-много физическа памет използва обектът Metafile (в нашия случай тя представлява 11 от 25 GB RAM сървър).

Какво е метафайл в Windows??

Metafile (Metafile) - той е част от системния кеш, който съдържа метаданните на файловата система NTFS и се използва за увеличаване на скоростта на файловата система при достъп до файлове. NTFS метаданните включват данни за MFT (Master File Table). За всеки файл / папка, до която потребителите имат достъп, в метафайла се създава съответен блок с размер най-малко 1 Kb (запис за атрибута на всеки файл отнема 1kb и всеки файл има поне един атрибут). По този начин, на файлови сървъри с голям брой файлове, до които непрекъснато се осъществява достъп, размерът на системния кеш на NTFS (метафайл) може да достигне няколко гигабайта.

Деактивирането на този кеш или управлението му чрез стандартни инструменти на Windows няма да успее. Като решение можете да увеличите обема на паметта на сървъра, но това далеч не винаги е възможно..

Ако рестартирате сървъра, използваната от метафайла памет се освобождава, но с течение на времето размерът на метафайла в паметта все още започва да расте неконтролируемо.

Например, можете да прецените размера на MFT таблицата, като използвате друга помощна програма Russinovich - ntfsinfo. Например, в нашия пример за 2 TB диск, размерът на MFT таблицата е 13 GB.

Бързо изчистете MFT метафайла в паметта

Помощната програма RAMMap предоставя възможност за бързо изчистване на използваната памет от боклука, без да е необходимо да рестартирате сървъра. За да направите това, изберете секцията в менюто Празна -> Празна работна система на системата. След тази операция размерът на паметта под метафайла намаля десетки пъти, а процентът на RAM, използвана от сървъра, падна от 95% на 26%.

Основният недостатък на този метод е процеса на ръчно почистване и не се автоматизира по никакъв начин..

Динамичен кеш услуга за управление на кеш на файлове

Друго, по-кардинално решение на проблема с високото натоварване на RAM е метафайлът на файловата система  динамичен скривалище обслужване (http://www.microsoft.com/en-us/download/details.aspx?id=9258). Тази услуга чрез системния API ви позволява да управлявате параметрите на разпределения кеш.

Важно е. Използвайте това решение само ако имате описаните по-горе проблеми. Инсталирането на тази услуга няма да бъде универсално решение по други причини за изчерпване на паметта на сървърите.

Инсталирането на DynCache е доста просто (подробни инструкции са в архива с програмата).

  1. Копирайте файла в DynCache.exe към каталога  % SystemRoot% \ System32
  2. Създайте услуга DynCache екипътsc създайте DynCache binpath =% SystemRoot% \ System32 \ DynCache.exe start = auto type = own DisplayName = "Dynamic Cache Service"
  3. Импортиране на файл DynCache.reg към регистъра (съдържа стойности по подразбиране)
  4. Променете стойностите на следните ключове в системния регистър HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ DynCache \ Параметри
    • MaxSystemCacheMBytes: 4096 (dec) - максимален размер на кеша
    • MinSystemCacheMBytes: 100 (dec) - минимален размер

    забележка. Тези и други настройки на услугата DynCache трябва да бъдат коригирани в зависимост от обема на инсталираната памет и натоварването на сървъра, необходимата производителност и т.н. Като правило не трябва да задавате размера на кеша на повече от половината от RAM паметта, инсталирана на сървъра. След извършване на промяната услугата DynCache не е необходимо да се рестартира. промените се проследяват динамично.
  5. Стартирайте услугата с командата sc стартиране DynCache
забележка. Ако трябва да премахнете услугата, използвайте инструкциите.

В нашия случай след инсталирането на услугата DynCache, използването на паметта от метафайла престана да надвишава стойността от 4 GB, която зададохме. Потребителите не разкриха никакви проблеми с влошаването на производителността на файловия сървър.