DataLife Engine / Кэшированная оперативная память

Кэшированная оперативная память



В одной из наших прошлых статей мы коснулись такого аспекта работы RAM как аппаратно зарезервированная память, объём которой можно посмотреть в Диспетчере задач, переключившись на вкладку «Производительность» и выбрав слева блок «Память». Так вот, помимо этой самой зарезервированной памяти там имеются и другие данные о работе ОЗУ, которые могут вызвать у пользователя вопросы. Например, что такое кэшированная память в Диспетчере задач, почему она иногда занимает так много места, можно и нужно ли предпринимать какие-либо меры с целью её уменьшения?


Кэшированная оперативная память



Такие разные кэши

Перед тем как приступать к разбору обозначенного вопроса, следует сказать о том, что кэши бывают разные. Есть всем известный браузерный кэш — каталог файловой системы, в котором веб-обозреватели хранят временные данные; не менее известным типом кэша является располагающийся на физическом жёстком диске файл подкачки, в который система сбрасывает непомещающиеся в оперативную память данные; существуют и так называемые промежуточные кэши, например, служащая буфером между ОЗУ и центральным процессором кэш-память, реализованная в виде высокоскоростной микросхемы SRAM. Рассмотрим принцип её работы чуть более подробно.




Что такое кэш процессора, и как он работает


Когда ЦП обращается к оперативной памяти, чтобы считать или записать в неё данные, он сначала идентифицирует ячейку, с которой собирается работать. Для этого он формирует и отправляет в память запрос, RAM же его обрабатывает и открывает доступ процессору к хранящимся в соответствующей ячейке данным. Эта процедура занимает некоторое время, а поскольку процессор гораздо шустрее оперативной памяти, он вынужден ждать ответа от ОЗУ. Чтобы ускорить получение процессором данных из оперативной памяти, была придумана так называемая быстрая оперативная память, или иначе кэш-память. 


Таким образом, кэшированная память сокращает время отклика и повышает общую производительность компьютера. Соответственно, чем больше у вас на компьютере такой памяти, тем быстрее он должен работать. Тут, наверное, у многих из наших читателей возникнет такой вопрос: если быстрая память так хороша, почему ею не заменяют обычную оперативную память? Ответ прост — всё дело в цене, кэш-память намного дороже обычной памяти, поэтому она используется в ограниченных объёмах.


Что такое кэшированная память в Диспетчере задач


Однако мы увлеклись, вернёмся к нашему вопросу, вернее к той кэшированной памяти, которую может обнаружить у себя в Диспетчере задач каждый пользователь.

Кстати, сведения об этой памяти указаны также в оснастке «Монитор ресурсов», в котором она обозначена секцией синего цвета «Ожидание». По сути, кэшированная память представляет собой часть свободной оперативной памяти, выделенной под неиспользуемые данные наиболее приоритетных процессов.



В то же время кэшированная память не привязана жёстко к данным процессам, поэтому её страницы могут быть использованы для записи других, менее приоритетных процессов. Убедиться в этом вы можете сами, открыв пару десятков вкладок в браузере. Вы увидите, что объем доступной кэшированной памяти сразу станет меньше, а всё потому, что зарезервированные страницы были переданы браузеру для записи в них данных вкладок. Из этого следует, что беспокоиться вам нужно не о увеличении размера кэшированной памяти, а скорее наоборот — об уменьшении доступного объёма кэша при отсутствии свободной памяти, выделенной в Мониторе ресурсов голубым цветом.


Нужно ли очищать кэшированную память


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


Очистка кэшированной памяти в RAMMap и EmptyStandbyList


Самый простой способ обнулить кэш оперативную память — это воспользоваться бесплатной тулзой RAMMap, разработанной одним из сотрудников Microsoft Марком Руссиновичем. Утилита не требует установки, чтобы очистить в ней память, выберите в главном меню Empty → Empty Standby List. Объем кэшированной памяти тут же уменьшится в несколько раз, но уже через несколько минут система опять её зарезервирует. 

Также вы можете воспользоваться такой утилитой как EmptyStandbyList, работающей по тому же принципу что и функция Empty Standby List в утилите RAMMap. В отличие от RAMMap, тулза EmptyStandbyList не имеет графического интерфейса, чтобы очистить с её помощью кэшированную память, достаточно просто запустить исполняемый файл. Естественно, через некоторое время кэш снова будет заполнен, если вы хотите это предотвратить, в Планировщике заданий вам нужно создать задачу, которая станет запускать исполняемый файл EmptyStandbyList.exe каждые 2, 3, 5, 10 или сколько вам нужно минут.


Откройте Планировщик командой taskschd.msc, справа нажмите «Создать» задачу

и выставьте настройки как показано на скриншоте. Обратите внимание, что в качестве пользователя мы указываем Систему, тогда как по умолчанию задание будет выполняться от имени учётной записи администратора. В условиях запуска (триггеры) указываем интервал между запусками задачи, на вкладке «Действия» указываем путь к исполняемому файлу утилиты. Сохраняем задание и проверяем его работу.

Использовать этот трюк или нет, решать вам. Если вы наблюдаете чрезмерное заполнение RAM-кэша, сопровождающееся снижением производительности в играх или при работе с «тяжёлыми» приложениями, пробуйте, в остальных случаях особого смысла в очистке кэша памяти мы не видим.

17-02-2021
Вернуться назад