CacheSet версии 1.02

Марк Руссинович

Опубликовано: 16 декабря 2021 г.

DownloadСкачать CacheSet(417 КБ)
Запустите сейчас из Sysinternals Live.

Введение

CacheSet — это приложение, которое позволяет управлять параметрами рабочего набора системного файлового кэша. В отличие от CacheMan, CacheSet выполняется во всех версиях NT и будет работать без изменений в новых выпусках пакета обновления. Помимо предоставления возможности управлять минимальными и максимальными размерами рабочих наборов, он также позволяет сбрасывать рабочий набор кэша, заставляя его увеличиваться по мере необходимости с минимальной начальной точки. Кроме того, в отличие от CacheMan, изменения, внесенные с помощью CacheSet , немедленно влияют на размер кэша.

Используйте CacheSet для настройки размера системного кэша таким образом, чтобы изменить внутренние переменные таким образом, как CacheMan делает.

Примечание. Чтобы использовать CacheSet в NT 4.0 с пакетом обновления 4 и более поздних версий, необходимо иметь привилегию "Увеличить квоту" (учетные записи администратора имеют эту привилегию по умолчанию). CacheSet обновлен, чтобы включить эту привилегию, чтобы она работала с пакетом обновления 4 (SP4).

CacheSet screenshot

Установка и использование

После запуска он представляет текущий размер системного кэша файлов (обновляется дважды в секунду), пиковый размер (самый большой из всех, что было с последней перезагрузки), и позволяет задать новые минимальные и максимальные размеры рабочих наборов.

Установка новых размеров просто введите новые минимальные и максимальные размеры и нажмите кнопку "Применить". Если возникает ошибка, то одно из следующих условий содержит: вы ввели максимальное значение меньше минимального, минимальное значение, которое вы ввели, меньше минимального размера рабочего набора системы или максимальный размер, который вы ввели, превышает максимальный размер рабочего набора системы. Измените введенные значения и повторите попытку.

Вы можете заметить, что размер кэша изменяется немедленно, а затем переходит к сокращению или росту быстро. Это связано с тем, что система автоматически обрезает рабочие наборы один раз в секунду. Страницы кэша, выпущенные по-прежнему в памяти, но могут быть отложены быстро для использования другими программами, которые нуждаются в большей памяти. Аналогичным образом кэш может легко восстановить страницы, так как приложения получают доступ к данным файловой системы.

Сброс предыдущих значений в любое время можно восстановить рабочие значения набора кэша, которые были активны при последнем запуске CacheSet , нажав кнопку "Сброс".

Очистка рабочего набора кэша позволяет принудительно освободить все страницы кэша, нажав кнопку "Очистить". Обратите внимание, что кэш может расти снова по мере необходимости, и что это не так же, как очистка кэша — страницы, назначенные ему, просто становятся доступными для других программ и могут быть восстановлены кэшем.

С помощью интерфейса командной строки можно ввести минимальные и максимальные размеры рабочих наборов в командной строке CacheSet. CacheSet будет применять эти новые значения автоматически. Таким образом, вы можете добавить CacheSet в группу начальной программы, чтобы автоматически задавать размеры кэша при каждой загрузке.

Использование: CacheSet [минимальный рабочий набор] [максимальный рабочий набор]

Принцип работы

CacheSet использует вызов NtQuerySystemInformation для получения сведений о параметрах кэша и NtSetSystemInformation для задания новых сведений о размерах. Сведения о рабочем наборе для процесса служат рекомендациями для диспетчера памяти NT относительно того, сколько страниц физической памяти должно быть назначено приложению. Поскольку они являются рекомендациями, условия могут привести к тому, что диспетчер памяти увеличивает рабочий набор до размера, превышающего максимальный, или сокращает его до минимального. Однако параметры — это факторы, влияющие на общее выделение и, следовательно, скорость реагирования приложения. В случае CacheSet приложение является кэшем файловой системы.

Внутренне NtSetSystemInformation вызывает MmAdjustWorkingSetSize, который либо увеличивает рабочий набор приложения, либо обрезает его. Если третий параметр, переданный в MmAdjustWorkingSetSize , равен 1, рабочий набор системного кэша корректируется, в противном случае корректировка возникает в текущем процессе (вызовы системной информации влияют только на системный кэш). Передача минимального и максимального значения –1 приводит к тому, что MmAjustWorkingSetSize выполняет операцию очистки рабочего набора, освобождая все страницы из рабочего набора приложения.

DownloadСкачать CacheSet(417 КБ)

Запустите сейчас из Sysinternals Live.

Выполняется:

  • Клиент: Windows Vista и выше.
  • Сервер: Windows Server 2008 и выше.