- Кэшированная оперативная память Windows 10 — что это и как её очистить
- Что значит «Кэшировано» в информации о памяти
- Очистка кэшированной памяти
- Видео
- Устранение проблем с производительностью кэша и диспетчера памяти Troubleshoot Cache and Memory Manager Performance Issues
- Счетчики для мониторинга Counters to monitor
- Системный кэш файлов содержит структуры данных метафайлов NTFS System file cache contains NTFS metafile data structures
- Системный кэш файлов содержит файлы, сопоставленные с памятью System file cache contains memory mapped files
- Windows memory cache bytes
Кэшированная оперативная память Windows 10 — что это и как её очистить
Любой пользователь Windows 10, открывший диспетчер задач и заглянувший на вкладку «Производительность» в раздел «Память» обнаружит пункт «Кэшировано», причем размер кэшированной памяти обычно тем значительнее, чем больше объем оперативной памяти на компьютере или ноутбуке.
В этой инструкции подробно о том, что означает кэшированная память в Windows 10, стоит ли переживать, что её много и о том, можно ли её очистить. Статья на близкую тему: Что делать, если невыгружаемый пул занимает много памяти в Windows 10.
Что значит «Кэшировано» в информации о памяти
Если в диспетчере задач вы подведёте указатель мыши к пустому разделу, обычно располагающемуся по центру графического представления «Структура памяти», вы увидите подпись: «Зарезервировано. Память, содержащая кэшированные данные и код, которые сейчас не используются» — речь ведётся именно о той оперативной памяти, которую вы видите в пункте «Кэшировано». Что это означает?
Кэшированная память в Windows 10 — это занятые, но неиспользуемые в настоящий момент страницы памяти, содержащие различные данные, которые могут потребоваться в дальнейшем для работы системных и сторонних процессов и которые эффективнее будет получить именно из оперативной памяти, а не снова прочитать с диска. Чем больше доступной неиспользуемой памяти, тем больший её объём может оказаться в состоянии «кэшировано».
Логику этого подхода можно описать следующим образом: в Windows 10 присутствуют различные механизмы ускорения работы системы и кэшированная память — один из них. При наличии неиспользуемой оперативной памяти эффективнее использовать её как кэш, а не освобождать сразу: сама по себе свободная память не приводит к ускорению работы: система и программы будут работать с одинаковой скоростью, независимо от того, свободно у вас 2 Гб RAM или 16. Проблемы могут возникнуть, когда свободной памяти не остаётся, но кэшированная память с большой вероятностью не станет причиной этого.
Очистка кэшированной памяти
Прежде всего, какая-либо очистка кэшированной памяти Windows 10 самостоятельными действиями, с помощью сторонних утилит или другими методами обычно лишена смысла: память «Кэшировано» освобождается системным менеджером памяти в первую очередь, когда RAM потребовалось для каких-либо задач, а доступной свободной оперативной памяти недостаточно.
В качестве примера: в первом разделе статьи приводился снимок экрана с состоянием ОЗУ в диспетчере задач на момент начала написания этого материала. Ниже — сразу после запуска редактора видео, открытия и запуска рендеринга проекта в нём.
Как можно увидеть, объём кэшированной памяти сократился на 2 Гб, в дальнейшем, по прекращении работы с «тяжелым» софтом её объём вновь будет прирастать по мере использования системы и всё это — нормальное поведение, не влияющее негативно на отзывчивость вашего ПК или ноутбука.
Существуют сторонние утилиты для быстрой очистки всей кэшированной оперативной памяти в Windows 10 и предыдущих версиях системы. Один из самых популярных инструментов — EmptyStandbyList.exe, демонстрация его использования после примечания. Ещё две программы, позволяющие выполнить очистку: Mem Reduct и Intelligent Standby List Cleaner.
Я не рекомендую подобные программы к использованию. Повторюсь: в рассматриваемом случае приятные для глаз числа свободной оперативной памяти, которые мы сможем получить, не приведут к повышению производительности системы или FPS в играх. В других сценариях, когда речь идёт не о кэшированной памяти, а о занятой и используемой RAM, при условии её нехватки для других задач высвобождение может иметь смысл, но это уже отдельная тема.
Упомянутую программу можно скачать с сайта разработчика: https://wj32.org/wp/software/empty-standby-list/ после этого для её использования:
- Запустите командную строку от имени Администратора.
- Введите следующую команду, указав полный путь к EmptyStandbyList.exe в начале команды (для этого можно удерживать клавишу Shift, нажать по файлу правой кнопкой мыши, выбрать пункт «Копировать как путь», а затем вставить в командную строку):
- Вариант результата — на изображении ниже (получено не на том же компьютере, на котором были сделаны предыдущие скриншоты).
При этом следует учитывать, что сразу после использования утилиты, по мере работы, объем кэшированной памяти вновь начнёт расти.
Видео
Надеюсь, статья помогла разобраться, для чего нужна кэшированная память и в других вопросах, имеющих к ней отношение.
А вдруг и это будет интересно:
Почему бы не подписаться?
Рассылка новых, иногда интересных и полезных, материалов сайта remontka.pro. Никакой рекламы и бесплатная компьютерная помощь подписчикам от автора. Другие способы подписки (ВК, Одноклассники, Телеграм, Facebook, Twitter, Youtube, Яндекс.Дзен)
19.03.2021 в 09:17
Мир вам! Прошу прощение за обращение не по сегодняшней, но я не нашёл, как ещё к вам можно обратиться. У меня на Windows 10 время от времени выскакивает окошко с надписью — «Восстановить параметры безопасности интернета». Что это такое и как их восстановить, чтобы уведомление больше не появлялось?
19.03.2021 в 10:12
Здравствуйте. Возможно, ваш антивирус находит какие-то изменения и показывает такое сообщение? Точнее по описанию я не скажу.
19.03.2021 в 12:34
Удачная статья…
У меня другой вопрос, как увеличить размер кэша в памяти, у меня получается так «используется 3гб из 64, размер кэша 2 гб», как «попросить» Виндовоз кушать всё…?
19.03.2021 в 16:40
А вот такие механизмы мне не знакомы и не уверен, что есть. То есть он же не просто так их берет: сначала что-то должно занять память, а потом, перестав работать, не освобождать. И если у вас на первом этапе никто, преимущественно системный, много не потребляет, то и в кэше мы много не увидим.
20.03.2021 в 13:18
нее, а погрузить все работающие файлы (весь виндовоз) в оперативку…, чтоб шибче работало. теоретически 64 гб должно хватить..
21.03.2021 в 07:57
Ну вообще когда вы систему загружаете у вас и так почти все именно работающие файлы Windows в оперативке, библиотеки, которые время от времени бывают нужны — не загружаются, а всё основное — да. А вот если бы это было не так, работать было бы сильно сложнее.
13.04.2021 в 02:06
Хватит только теоретически. И при переполнении будет мгновенный бсод (поэкспериментировать можно, это весело), плюс своп-то все равно будет эмулироваться в ОП. Можно практически отключить файл подкачки и запретить его использование в реестре, но это не даст никакого повышения производительности, абсолютно. Подобный сценарий работает в windows PosReady/industry с заливкой образа с системой в оперативку при старте с помощью ewf фильтра, и дальнейшей работой оттуда. Там это сделано с целью надежности и экономии флешки, дешевого ссд в банкомате, с которого обычно все грузится. WinPe грузится также, из тех же соображений.
19.03.2021 в 14:55
Дмитрий, здравствуйте! Исправьте описку — «Если в диспетчере устройств вы подведёте указатель мыши…» – не в диспетчере устройств, а в диспетчере задач. Всего наилучшего!
19.03.2021 в 16:33
Здравствуйте. Спасибо, сейчас сделаю)
13.04.2021 в 02:18
10-ка еще память жмет, что в общем видно, там в скобочках, но я отключаю вместе с суперфетчем. Для офисно дизайнерско серверных итд нужд весьма полезная штука. Для всего, кроме игр.
Устранение проблем с производительностью кэша и диспетчера памяти Troubleshoot Cache and Memory Manager Performance Issues
До выхода Windows Server 2012 две основные потенциальные проблемы приводят к увеличению размера кэша системных файлов до тех пор, пока объем доступной памяти не будет почти исчерпан при определенных рабочих нагрузках. Before Windows Server 2012, two primary potential issues caused system file cache to grow until available memory was almost depleted under certain workloads. Если эта ситуация приводит к медленной работе системы, можно определить, является ли сервер одной из этих проблем. When this situation results in the system being sluggish, you can determine whether the server is facing one of these issues.
Счетчики для мониторинга Counters to monitor
\Время существования долгосрочного резервного кэша памяти (в байтах), Memory\Long-Term Average Standby Cache Lifetime (s)
\Нехватка доступной памяти, МБ Memory\Available Mbytes is low
\Резидентные байты в системном кэше памяти Memory\System Cache Resident Bytes
Если объем \ доступной памяти (в МБ) слишком мал и в течение одного \ байта память, резидентная в кэш, занимает значительную часть физической памяти, можно использовать раммап , чтобы узнать, для чего используется кэш. If Memory\Available Mbytes is low and at the same time Memory\System Cache Resident Bytes is consuming significant part of the physical memory, you can use RAMMAP to find out what the cache is being used for.
Системный кэш файлов содержит структуры данных метафайлов NTFS System file cache contains NTFS metafile data structures
Эта проблема обозначается очень большим числом активных страниц метафайлов в выходных данных РАММАП, как показано на следующем рисунке. This problem is indicated by a very high number of active Metafile pages in RAMMAP output, as shown in the following figure. Эта проблема могла быть замечена на занятых серверах, к которым обращаются миллионы файлов, что приводит к кэшированию данных метафайлов NTFS, которые не освобождаются из кэша. This problem might have been observed on busy servers with millions of files being accessed, thereby resulting in caching NTFS metafile data not being released from the cache.
Проблема, используемая для устранения проблемы с помощью средства динкаче . The problem used to be mitigated by DynCache tool. В Windows Server 2012 + архитектура была переработана, и эта проблема больше не должна существовать. In Windows Server 2012+, the architecture has been redesigned and this problem should no longer exist.
Системный кэш файлов содержит файлы, сопоставленные с памятью System file cache contains memory mapped files
Эта проблема обозначается очень большим числом активных страниц, сопоставленных с файлами, в выходных данных РАММАП. This problem is indicated by very high number of active Mapped file pages in RAMMAP output. Обычно это означает, что какое-либо приложение на сервере открывает много больших файлов с помощью API-интерфейса CreateFile с _FLAG_RANDOM_ACCESS. This usually indicates that some application on the server is opening a lot of large files using CreateFile API with FILE_FLAG_RANDOM_ACCESS flag set.
Эта проблема подробно описана в статье базы знаний 2549369. This issue is described in detail in KB article 2549369. _ _ Флаг случайного _ доступа к файлу — это указание для диспетчера кэша, которое сохраняет сопоставленные представления файла в памяти (до тех пор, пока диспетчер памяти не сообщит о нехватке памяти). FILE_FLAG_RANDOM_ACCESS flag is a hint for Cache Manager to keep mapped views of the file in memory as long as possible (until Memory Manager doesn’t signal low memory condition). В то же время этот флаг указывает диспетчеру кэша, что необходимо отключить предзагрузку файловых данных. At the same time, this flag instructs Cache Manager to disable prefetching of file data.
Эта ситуация была устранена в некоторой степени за счет улучшения работы с обрезками в Windows Server 2012 +, но сама по себе проблема должна быть решена поставщиком приложения без использования _ флага файла с _ произвольным _ доступом. This situation has been mitigated to some extent by working set trimming improvements in Windows Server 2012+, but the issue itself needs to be primarily addressed by the application vendor by not using FILE_FLAG_RANDOM_ACCESS. Альтернативным решением для поставщика приложения может быть использование приоритета нехватки памяти при доступе к файлам. An alternative solution for the app vendor might be to use low memory priority when accessing the files. Это можно сделать с помощью API сетсреадинформатион . This can be achieved using the SetThreadInformation API. Страницы, доступ к которым осуществляется с низким приоритетом памяти, более агрессивно удаляются из рабочего набора. Pages that are accessed at low memory priority are removed from the working set more aggressively.
Диспетчер кэша, начиная с версии Windows Server 2016, в дальнейшем устраняет эту возможность, игнорируя FILE_FLAG_RANDOM_ACCESS при выполнении обрезки, поэтому она обрабатывается так же, как и любой другой файл, Открытый без флага FILE_FLAG_RANDOM_ACCESS (диспетчер кэша по-прежнему учитывает этот флаг для отключения предварительной выборки данных файлов). Cache Manager, starting in Windows Server 2016 further mitigates this by ignoring FILE_FLAG_RANDOM_ACCESS when making trimming decisions, so it is treated just like any other file opened without the FILE_FLAG_RANDOM_ACCESS flag (Cache Manager still honors this flag to disable prefetching of file data). При наличии большого числа открытых файлов с этим флагом и доступе к ним по-настоящему случайным образом можно вызвать чрезмерное количество системных кэшей. You can still cause system cache bloat if you have large number of files opened with this flag and accessed in truly random fashion. Настоятельно рекомендуется FILE_FLAG_RANDOM_ACCESS не использовать приложения. It is highly recommended that FILE_FLAG_RANDOM_ACCESS not be used by applications.
Windows memory cache bytes
The memory collector exposes metrics about system memory usage
Metric name prefix | memory |
Data source | Perflib |
Classes | Win32_PerfRawData_PerfOS_Memory |
Enabled by default? | Yes |
Name | Description | Type | Labels |
---|---|---|---|
windows_memory_available_bytes | The amount of physical memory immediately available for allocation to a process or for system use. It is equal to the sum of memory assigned to the standby (cached), free and zero page lists | gauge | None |
windows_memory_cache_bytes | Number of bytes currently being used by the file system cache | gauge | None |
windows_memory_cache_bytes_peak | Maximum number of CacheBytes after the system was last restarted | gauge | None |
windows_memory_cache_faults_total | Number of faults which occur when a page sought in the file system cache is not found there and must be retrieved from elsewhere in memory (soft fault) or from disk (hard fault) | gauge | None |
windows_memory_commit_limit | Amount of virtual memory, in bytes, that can be committed without having to extend the paging file(s) | gauge | None |
windows_memory_committed_bytes | Amount of committed virtual memory, in bytes | gauge | None |
windows_memory_demand_zero_faults_total | The number of zeroed pages required to satisfy faults. Zeroed pages, pages emptied of previously stored data and filled with zeros, are a security feature of Windows that prevent processes from seeing data stored by earlier processes that used the memory space | gauge | None |
windows_memory_free_and_zero_page_list_bytes | Not yet documented | gauge | None |
windows_memory_free_system_page_table_entries | Number of page table entries not being used by the system | gauge | None |
windows_memory_modified_page_list_bytes | Not yet documented | gauge | None |
windows_memory_page_faults_total | Overall rate at which faulted pages are handled by the processor | gauge | None |
windows_memory_swap_page_reads_total | Number of disk page reads (a single read operation reading several pages is still only counted once) | gauge | None |
windows_memory_swap_pages_read_total | Number of pages read across all page reads (ie counting all pages read even if they are read in a single operation) | gauge | None |
windows_memory_swap_pages_written_total | Number of pages written across all page writes (ie counting all pages written even if they are written in a single operation) | gauge | None |
windows_memory_swap_page_operations_total | Total number of swap page read and writes (PagesPersec) | gauge | None |
windows_memory_swap_page_writes_total | Number of disk page writes (a single write operation writing several pages is still only counted once) | gauge | None |
windows_memory_pool_nonpaged_allocs_total | The number of calls to allocate space in the nonpaged pool. The nonpaged pool is an area of system memory area for objects that cannot be written to disk, and must remain in physical memory as long as they are allocated | gauge | None |
windows_memory_pool_nonpaged_bytes_total | Number of bytes in the non-paged pool | gauge | None |
windows_memory_pool_paged_allocs_total | Number of calls to allocate space in the paged pool, regardless of the amount of space allocated in each call | gauge | None |
windows_memory_pool_paged_bytes | Number of bytes in the paged pool | gauge | None |
windows_memory_pool_paged_resident_bytes | Not yet documented | gauge | None |
windows_memory_standby_cache_core_bytes | Not yet documented | gauge | None |
windows_memory_standby_cache_normal_priority_bytes | Not yet documented | gauge | None |
windows_memory_standby_cache_reserve_bytes | Not yet documented | gauge | None |
windows_memory_system_cache_resident_bytes | Not yet documented | gauge | None |
windows_memory_system_code_resident_bytes | Not yet documented | gauge | None |
windows_memory_system_code_total_bytes | Not yet documented | gauge | None |
windows_memory_system_driver_resident_bytes | Not yet documented | gauge | None |
windows_memory_system_driver_total_bytes | Not yet documented | gauge | None |
windows_memory_transition_faults_total | Not yet documented | gauge | None |
windows_memory_transition_pages_repurposed_total | Not yet documented | gauge | None |
windows_memory_write_copies_total | The number of page faults caused by attempting to write that were satisfied by copying the page from elsewhere in physical memory | gauge | None |
This collector does not yet have explained examples, we would appreciate your help adding them!
This collector does not yet have any useful queries added, we would appreciate your help adding them!
This collector does not yet have alerting examples, we would appreciate your help adding them!