Проблемы с производительностью приложений и служб, когда системный кэш файлов занимает большую часть физической ОЗУ

Проблемы

Проблемы с производительностью приложений и служб в различных версиях Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 и Windows Server 2008 R2. Кроме того, вы заметите следующие признаки:

  • В доступной памяти почти не будет памяти.

  • Системный кэш файлов занимает большую часть физического ОЗУ.

  • К жесткому диску постоянно и большой объем запросов на чтение в кэш.

Причина

Для управления памятью в операционных системах Microsoft Windows используется алгоритм, основанный на запросе. Если какой-либо процесс запрашивает большой объем памяти, увеличивается размер рабочего набора (количество страниц памяти в физическом ОЗУ). Если эти запросы непрерывно и не установлены, рабочий набор процесса будет обрабатывать весь физический ОЗУ. В этом случае рабочие наборы для всех остальных процессов высвеяются на жестком диске. Это снижает производительность приложений и служб, так как страницы памяти непрерывно пишутся на жестком диске и читают их с жесткого диска.

Это поведение также относится к рабочему набору системного кэша файлов. При непрерывном и высоком объеме запросов на чтение в кэше из любого процесса или драйвера размер рабочего набора системного кэша будет увеличиваться в связи с этим спросом. Системный кэш файлов занимает физический ОЗУ. Таким образом, достаточные объемы физической ОЗУ недоступны для других процессов.

В 32-битных версиях операционной системы Microsoft Windows, более ранних чем Windows Vista, рабочие наборы системного кэша имеют ограничение памяти менее 1 гигабайта (ГБ). Ограничение виртуального диапазона адресов предотвращает исчерпание физического ОЗУ для рабочих наборов системного кэша файлов.

В 32-битных версиях операционной системы Windows Vista ресурсы ядра выделяются динамически. Рабочий набор системного кэша файлов увеличивается для использования виртуального диапазона адресов режима ядра за счет других ресурсов ядра. Ограничение для этого диапазона памяти меньше 2 ГБ. Если на компьютере более 2 ГБ физической ОЗУ, кэш не может известить весь физический ОЗУ. Тем не менее, кэш может привести к исчерпанию виртуального адресного пространства в ядрах. Это может привести к сбоям выделения для других компонентов ядра.

В 64-битных версиях операционной системы Windows размер виртуального диапазона адресов обычно превышает физический ОЗУ. В этом случае рабочий набор для системного кэша может увеличиться для увеличения нагрузки на большую часть физического ОЗУ.

Решение

Алгоритмы управления памятью в операционных системах Windows 7 и Windows Server 2008 R2 были обновлены для устранения многих проблем кэширования файлов, найденных в более ранних версиях Windows. Существует лишь несколько уникальных ситуаций, в которых необходимо реализовать эту службу на компьютерах с Windows 7 или Windows Server 2008 R2.

Как определить, влияет ли это на систему

Чтобы определить, влияет ли эта проблема на вашу систему, установите средство SysInternals RamMap. Вы можете получить это средство на следующем веб-сайте Windows Sysinternals:

http://technet.microsoft.com/en-us/sysinternals/ff700229
При запуске средства выберите параметр "Использовать подсчеты". Отображается несколько столбцов, которые отображают текущий шаблон использования памяти. Щелкните столбец "Активные", чтобы отсортировать данные по количеству использованных bytes, и заметьте верхнее использование непосредственно под итогом.

Если в качестве наиболее часто используемого файла используется метафил и используется большая часть доступной памяти, у вас наблюдается проблема с кэшом системных файлов, описанная в разделе "Симптомы". Это можно проверить с помощью монитора производительности, чтобы отслеживать счетчик Resident Bytes в памяти\system cache, и со временем кэш постоянно растет.

Рисунок 1. Пример вывода RamMap, в котором проблема наблюдается на компьютере.


заме желтая текст
Рисунок 2. Пример вывода RamMap, в котором проблема не наблюдается на компьютере.


заме желтая текст
Если в счетчике Resident Bytes между памятью и системой в мониторе производительности показана восходящая тенденция, проблема наблюдается на компьютере( на рисунке 3).

Рисунок 3. Пример выходного монитора производительности, в котором компьютер со временем испытывает проблему.

заме желтая текст

Требования к перезапуску

Вам не нужно перезапускать компьютер при установке, установке или использовании этой службы.

Если вы читаете эту статью, так как работаете с клиентом, который считает, что на них влияет эта проблема, выполните указанные здесь действия, чтобы устранить проблему.

  1. Убедитесь в том, что выходные данные клиента, данные perfmon или poolmon подтверждают, что системный кэш файлов расходует большую часть физического ОЗУ, как описано выше.

  2. Чтобы получить службу Windows Dynamic Cache, скачайте ее здесь.

  3. Некоторые параметры реестра Динамического кэша параметров находятся в этой области:

    Файловые серверы, возможно, вы захотите попробовать 1 ГБ.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:00000400
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    Exchange 2007 может потребоваться попробовать 500 МБ:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000001F4
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    SQL 2005 и более высоких версий в прошлом при SQL EE использовали 2 ГБ:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000007D0
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

Дополнительная информация

Чтобы обойти эту проблему, используйте функции GetSystemFileCacheSize API и SetSystemFileCacheSize API, чтобы установить максимальное или минимальное значение размера для рабочих наборов системного кэша файлов. Эти функции — единственный поддерживаемый способ ограничить потребление физической памяти в кэше системных файлов.

Служба Microsoft Windows Dynamic Cache — это образец службы, демонстрирующая стратегию использования этих API для минимизации влияния этой проблемы.

Установка и использование службы Microsoft Dynamic Cache Service не приводят к исключению поддержки Microsoft Windows. Эта служба и ее исходный код являются примером использования поддерживаемых Майкрософт API для уменьшения роста кэша файловой системы.

Вы можете получить службу и исходный код на следующем веб-сайте Майкрософт:

http://www.microsoft.com/download/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&displaylang=en

Дополнительные ресурсы

Чтение глав 9 (управление памятью) и 10 (диспетчер кэша) внутренних приложений Windows, выпуска 5-го выпуска.

Запись блога об УПРАВЛЕНИИ ПАМЯТЬю (проблемы с кэшом БОЛЬШОЙ СИСТЕМЫ)

Запись блога о проблемах с большими файлами

Ограничения памяти для выпусков Windows

976618 Вы испытываете проблемы с производительностью приложений и служб, когда системный кэш файлов занимает большую часть физической оперативной памяти 918483, что позволяет уменьшить запас запаса памяти в 64-битной версии SQL Server 895932 Что нужно учесть перед тем, как включить режим кэша системы в Windows XP 232271: оптимизация Windows NT-сервера с помощью записи блога о кэше Диспетчера кэша в





Windows

Server 2003

http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx

LargeSystemCache TechNet

 

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×