Процесс System в Windows 10 может потреблять 4 Гб RAM

После установки Windows 10 на ноуты стал замечать, что распределение операционной памяти происходит своеобразно. Ладно хром есть много памяти, а вот неизвестные процессы вызывают вопросы.

Процесс System.exe нагружает оперативную память - Windows 10

Был у меня на windows 8 процесс host, который периодически грузил нехило процессор, а теперь system кушает ОЗУ.

Пошли капать сеть.

Это не баг, это фича

Гейб Аул (twitter):

В Windows 10, мы добавили новое понятие в диспетчере памяти называется оно магазин сжатия, который хранит в памяти сжатые страницы. Это означает, что, менеджер памяти будет сжимать неиспользуемые страницы, а не писать их на диск. Это уменьшает объем памяти, используемый в процессе, позволяя Windows 10, поддерживать большее применение в физической памяти, на данный момент. Это также помогает обеспечить более высокую отзывчивость Windows 10 ... Это видно в диспетчере задач и поэтому процесс 'System' потребляет больше памяти, чем в предыдущих выпусках.
Это может показаться шуткой, но то, что процесс System в Windows 10 может потреблять 4 Гб RAM (или больше) является не утечкой памяти или другой серьезной проблемой, а улучшением в механизме управления памятью, которое повышает производительность приложений.

Для чего?

В Windows 8 и более ранних версиях при отсутствии свободной памяти система автоматически перемещает данные запущенных приложений в файл подкачки, который находится на жестком диске и служит в качестве виртуальной памяти. Однако, поскольку скорость чтения данных с жесткого диска гораздо, гораздо ниже таковой у оперативной памяти, это приводит к заметному снижению отзывчивости приложений, чьи данные размещены в файле подкачки.

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

Сжатие функционирует в рамках System и именно по этой причине этот процесс иногда может «потреблять» несколько гигабайт.

Android 6.0 Marshmallow Doze.

Немного мыслей в слух.
В новой версии Андройда добавили для увеличения жизни батареи систему Doze. Так вот по сути она делает тоже самое, что и System у винды. Анализирует активность приложений на смартфоне и расстанавливает приоритеты программ: кого вырубить, а кого держать в памяти. Прирост жизни телефона аж на 20-30%.
Только в смарте флеш память и главная задача продлить жизнь устройства, а в винде ускорить отзывчивость и скорость работы.

А если у меня SSD в ноуте?

Я взял себе SSD на 128 Гб. Установка винды была на весь диск - без разбивки. Все нужные файлы ношу на переносном 500 Гб винте с USB 3.0. Пока катит.

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

Капаем дальше.

ReadyBoot, SuperFetch и Prefetch

Функция ReadyBoot работает в рамках службы SuperFetch. После каждой загрузки она, дождавшись бездействия системы, анализирует предыдущий запуск и определяет, какие файлы использовались во время последней загрузки. В следующий раз ReadyBoot ускоряет загрузку Windows за счет кэширования файлов загрузки системы и программ автозагрузки в оперативной памяти, что быстрее, чем считывать файлы с жесткого диска.
Функция Prefetch, появившаяся в Windows XP, служит для упреждающей загрузки данных в память. Служба SuperFetch в Windows 7 выступает в качестве интеллектуальной надстройки над Prefetch, анализирующей ваши сценарии использования системы.
Если на компьютере установлено менее 1.7 Гб оперативной памяти (RAM), ReadyBoot сжимает кэшируемые файлы. В этом случае на их распаковку требуется какое-то время, пусть и совсем небольшое.
Важное примечание в том, что информация о ReadyBoot не является актуальной при загрузке с твердотельного накопителя (SSD). Уже с Windows 7 определяет наличие SSD диска, служба SuperFetch отключает функцию ReadyBoot, поскольку в этом случае выигрыша в скорости загрузки нет.

Windows определяет наличие SSD и функция ReadyBoot, работающая в рамках SuperFetch, не используется для ускорения загрузки системы, установленной на твердотельный накопитель.

Отключение службы SuperFetch может снижать скорость запуска программ с жесткого диска!

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

Вряд ли SuperFetch способна ускорить запуск программ с SSD, но Microsoft не отключает функцию, учитывая наличие жестких дисков в системе. Если фирменная утилита изготовителя SSD (например, Intel SSD Toolbox) рекомендует отключить SuperFetch, следуйте ее совету. Однако в этом случае более чем логично держать все программы на SSD.

Для информации Pagefile.sys на SSD

Вы только выиграете в производительности при наличии pagefile.sys на SSD!
Об этом разработчики Windows пишут в своем блоге.

Что я решил в итоге?

Попробую отключать службу SuperFetch, проверю и потестирую скорость работы системы. Предварительно поищу официальную утилиту на свой SSD и почитаю рекомендации от производителя. Рисковать и экономить ОЗУ пока не вижу смысла.

А вот рекомендации от производителя диска:

Ниже более детальная информация по вопросу кеша.

Технология SuperFetch. С чем едят и для чего она нужна?

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

Вначале SuperFetch отслеживает пользовательскую активность и определяет наиболее часто используемые приложения, для чего создаёт базу данных, которая постоянно обновляется по ходу работы пользователя.

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

Особенно это заметно на таких «тяжелых» приложениях, как семейство MS Office, функционал которых может быть «размазан» по десяткам и сотням exe-шников и dll-ок. SuperFetch настолько «умна», что может даже определять предпочтения пользователя в разные дни и время суток.

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

Благодаря такой системе, SuperFetch определяет приложение с низким приоритетом как побочное, а приложение с высоким приоритетом — как главное. При этом SuperFetch постоянно отслеживает изменения приоритетов, чтобы система могла реагировать сообразно и в дальнейшем.

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

Если сравнительно долго работать с документом в программе Word. то всё это время приложение Word распознаётся службой SuperFetch как программа с высоким приоритетом и, соответственно, определяется как главная. перестав работать с этой программой, Word перестаёт быть активным приложением и другие работающие в фоновом режиме задачи, включая "Дефрагментатор диска", понимают, что ресурсы системы свободны и начинают действовать.

Когда это происходит, "Дефрагментатор диска" получает высокий приоритет, а Word — низкий, и SuperFetch удаляет Word из памяти в файл подкачки, освобождая место для процессов "Дефрагментатора диска". А сразу же по завершении этих процессовSuperFetch заново возвращает Word обратно в кэш памяти, поэтому, когда вы, через какое то время снова запустите World, скорость отклика Word остаётся той же, какой и была в момент вашего выхода из программы (то есть системе не потребуется загружать Word в память).

SuperFetch может обрабатывать режимы гибернации, «спящий режим» и смены пользователя. Если система уходит в гибернацию — то SuperFetch сохраняет в файл hiberfil.sys код и данные тех приложений, которые, по его мнению, скорее всего будут использоваться после выхода из гибернации.

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

SuperFetch появился еще в Windows Vista, но стоит отметить, что работа и использование КЭШа возможностью SuperFetch в Windows 7 значительно отличаются оттого, что было в Vista. Так, под Vista кэширование приложений начинается сразу после загрузки операционной системы. Как видно из графиков ниже, спустя уже три минуты после загрузки выделено уже около 1GB памяти. В тоже время в Windows 7 SuperFetch начинает работать через пять минут после загрузки и спустя 10 минут выделение памяти немногим более превышает 600MB. Тогда как в этой же точке Vista SuperFetch выделил уже более 1,5GB памяти.
Впрочем, даже с выключенным SuperFetch, Windows 7 требует меньше КЭШа. Для собственной работы она использует 333MB памяти, тогда как Vista без SuperFetch использует уже 519MB.

Новая реализация SuperFetch под Windows 7 положительно сказывается и на производительности. Очевидно, что Windows 7 требует меньшего количества ресурсов и использует значительной меньший кэш, чем Vista. Так же SuperFetch стартует гораздо позже, поэтому жесткий диск не занимается сразу после загрузки операционной системы, а свободен для запуска пользовательских задач. Это означает, что вам не приходится дожидаться момента, когда операционная система монополизирует системные ресурсы под кэширующие задачи.

Говоря простыми словами, SuperFetch пытается закачать данные приложений с медленного жёсткого диска в оперативную память. Служба использует всю доступную память, чтобы создать рабочую среду, которая позволит запускать приложения практически мгновенно.

Но, конечно, SuperFetch требует немалый объём памяти. Если у вас установлено 512 Мбайт, то служба не будет работать эффективно, поскольку Windows и 2-3 приложения уже "съедят" всю доступную память. И для кэшированных данных памяти просто не останется. Если же вы не работаете с несколькими приложениями одновременно, то SuperFetch положительно проявит себя уже при 1 Гбайт памяти. Но, объём ОЗУ 2 Гбайт и более отнюдь не повредит.

Площадки для анализа: outsidethebox.ms, cyberforum.ru, pikabu.ru, wikiwin.info, g-ek.com, windowstips.ru

Комментарии

Статьи