Наблюдательные и опытные пользователи обратили внимание на то, что в ряде случаев Windows 10 процесс System стал потреблять больше оперативной памяти, нежели в предыдущих Windows.
Признаки и анализ проблемы
В диспетчере задач видно, как процесс System потребляет много памяти.
Анализ с помощью утилиты poolmon выводил на элемент smNp, но его назначение было непонятно.
Дальнейший анализ с помощью xperf и WPA показывал, что функция ядра ntoskrnl.exe!SmKmStoreHelperWorker распределяла память. Однако причины и цели такого поведения оставались неясными.
Объяснение Microsoft
Kомпания разъяснила поведение новой ОС в блоге инсайдерской программы, хотя никакой связи между анонсом новой сборки и описанной ситуацией нет.
В операционной системе Windows 10 разработчики добавили в диспетчер памяти новую концепцию под названием «хранилище сжатия» (compression store), которая представляет собой хранящуюся в оперативной памяти коллекцию сжатых страниц. Когда диспетчер испытывает нехватку памяти, он сжимает неиспользуемые страницы вместо записи на диск (подкачки). Это сокращает объём памяти, используемой каждым процессом, что позволяет Windows 10 одновременно держать в оперативной памяти больше приложений. Это также делает систему более отзывчивой и быстрее реагирующий на запросы пользователя.
Хранилище сжатия функционирует в рамках рабочего набора процесса System. Поскольку процесс System удерживает хранилище в памяти, его рабочий набор увеличивается, когда память выделяется для других процессов. Это можно наблюдать в диспетчере задач (см. картинки выше), и именно это является причиной того, что процесс System потребляет памяти больше, нежели в предыдущих версиях операционной системы.
|