Superfetch — что это за служба
Рабочий процесс, который улучшает отзывчивость операционной системы (ОС) и приложений благодаря анализу ретроспективных данных и последующего активного управления свободной оперативной памятью. Эта служба дебютировала в Windows Vista и с тех пор включалась в каждый релиз ОС.
СуперФетч можно сравнить с умным отцом, который держит весь инструмент в гараже не просто в порядке, а в «правильном» порядке, чтобы сын быстро отыскивал нужные ключи или кусачки. «Правильный» порядок означает следующее:
- в непосредственной близости от рабочей зоны будут находиться те инструменты, который используются чаще всего;
- приоритетный инструмент также расположен не наобум — если часто снимаются автоколеса, то домкрат будет ближе, чем баллонный ключ, поскольку тот нужен раньше;
- все инструменты после использования кладут на старое место;
- если какая-то операция уже не повторяется (например, купили новую покрышку и колесо теперь не прокалывается часто), то требуемый для ее выполнения специфический инструмент постепенно располагается все дальше и дальше от рабочей зоны.
Пример абсолютно условный, но он абстрактно демонстрирует задачи службы и это поможет более точно ответить на вопрос: «SuperFetch? Что это?».
Что это
SuperFetch – служба, предназначенная для поддержки и улучшения производительности операционной системы. Работая в фоновом режиме, она производит анализ потребления оперативной памяти разными программами.
Выделив часто открываемые приложения, служба начинает сразу после запуска операционной системы загружать их в память компьютера, чтобы пользователь смог быстрее приступить к работе с ними.
Enableboottrace
Параметр определяет статус трассировки процессов во время загрузки. Он устанавливает, должна ли ОС анализировать, как читаются файлы при запуске. Отключать это нет особого смысла по следующим причинам:
- параметр не влияет на все, что происходит с Windows после загрузки;
- ускоряется загрузка ОС за счет внутренней оптимизации файлов.
Enableprefetcher
Касательно этого параметра нужно объяснить историю предшественника SuperFetch — Prefetcher. Он появился еще на Windows XP и логика его действий — база для СуперФетч. Он анализирует, какие именно файлы загружаются при старте ОС или программ, создает таблицу приоритетности этих файлов и оптимизирует их размещение на носителе .
Enablesuperfetch
Параметр задает правила работы службы СуперФетч. Для него, как и для EnablePrefetcher, возможны 4 установки:
- 0 — отключение службы;
- 1 — использование только при загрузке приложений;
- 2 — использование только при загрузке ОС;
- 3 — использование при загрузке приложений и ОС.
Видео-инструкция
Также, можно посмотреть видео ролик в котором показано как отключить службу SysMain в операционной системе Windows 10.
Визуальные индикаторы сжатия памяти
В статье Microsoft вообще не упоминается служба SysMain, однако ее связь со сжатием памяти несложно вычислить экспериментальным путем. Кроме того, документ опубликовали перед выходом первой стабильной версии Windows 10, и лишь спустя год, в версии 1607, добавили наглядные сведения о сжатой памяти в диспетчер задач.
Когда служба SysMain включена, вы можете открыть диспетчер задач на вкладке Производительность и в разделе Память убедиться в использовании сжатой памяти, а также увидеть дополнительные сведения, наведя курсор на область Структура памяти.
Также, в Process Explorer вы можете увидеть в дереве процесса System процесс Memory Compression (это был единственный наглядный способ на момент выхода Windows 10). Наконец, с помощью PowerShell вы можете получить текущий статус сжатия памяти командлетом Get-MMagent.
https://www.youtube.com/watch?v=iT5TGDfUYew
Если же служба SysMain отключена, сжатая память не работает, что видно по тем же показателям.
Для чего нужна служба superfetch? | база полезных знаний
Служба superfetch позволяет ускорить исполнение установленных в системе программ, с которыми вы постоянно работаете. Эта служба отмечает программы, которые вы чаще всего используете. Благодаря этому происходит значительное ускорение запуска и работы программ. Ведь, благодаря работе данной службы, все нужные файлы уже заранее загружены!
SuperFetch – строго интеллектуальная служба. Запоминает запускаемые файлы, с которыми вы часто работаете, и запоминает, когда и какой файл был запущен. Например, если вы ежедневно в течении недели работали с графическим редактором, а в выходной решили поиграть в видео игры, то файлы игр, которые вы запускали, загружены не будут. Таким образом, служба superfetch позволяет достигать некоторого ускорения в работе вашего компьютера, за счет оперативной памяти. Конечно, если грузить сразу все программы, то производительность сильно снизится.
Если ваш компьютер маломощный и не обладает большим размером оперативной памяти, например, всего 1 Гб, то данная служба может использовать flash-память (USB-накопитель). Пусть она намного медленнее физической памяти, но значительно быстрее чем жесткий диск. Для того чтобы superfetch могла ускорить работу системы за счет flash-памяти, вам потребуется флэшка подключенная к компьютеру (иногда достаточно объёма в 4 Гб), далее в окне автозапуска выберите «Ускорить работу системы».
Все настройки службы расположены в реестре:
HKEY_LOCAL_MACHINE – > SYSTEM -> CurrentControlSet -> Control -> SessionManager -> MemoryManagement -> PrefetchParameters
Там находятся три типа нужных параметров: REG_DWORD
EnableBootTrace – включает трассировку ( нужно включать только если служба работает не так, как надо). Трассировка – Для понимания определенной программы и для проверки правильного написания своей используется метод пошагового исполнения программ с отслеживанием всех значений переменных.
EnablePrefetcher – механизм упреждающей выборки (Упреждающая выборка – это функция для повышения скорости загрузки и запуска приложений Windows.)
EnableSuperFetch – определяет включение или отключение службы SuperFetch
Для последних двух параметров используются четыре значения:
3 – функция доступна во всех случаях ( и во время работы и при загрузке)
2 – Функция доступна во время работы, но выключена при загрузке
1 – функция включена, но только для загрузки
0 – функция выключена;
Отключить службу можно с помощью командной строки с правами администратора используя команду
sc config SysMain start= disabled
После перезагрузите компьютер.
Если говорить простым языком, то данная служба заранее записывает все необходимые для работы данные приложений с жесткого диска в оперативную или флэш память. Служба использует всю свободную память доступную в данный момент для создания рабочей среды, которая и позволяет запускать приложения и часто используемые программы намного быстрее.
Если хотите, чтобы ваша система Windows 7 работала намного быстрее, то задумайтесь о данной службе и держите ее постоянно включенной.
Как отключить службу sysmain (superfetch) в windows powershell
Также можно использовать консоль PowerShell для отключения или включения службы SysMain (Superfetch).
Чтобы отключить службу SysMain (Superfetch), откройте консоль Windows PowerShell от имени администратора и выполните следующую команду:
Stop-Service -Force -Name “SysMain”; Set-Service -Name “SysMain” -StartupType Disabled
Чтобы включить службу SysMain (Superfetch), откройте консоль Windows PowerShell от имени администратора и выполните следующую команду:
Set-Service -Name “SysMain” -StartupType Automatic -Status Running
Используя рассмотренные выше действия, можно отключить или включить службу SysMain (Superfetch) в операционной системе Windows 10.
Как отключить службу sysmain в windows 10
Важно! Не рекомендуем полностью отключать службу узла SysMain. Если же она грузит диск или процессор, можете в несколько нажатий перезапустить её. Обладателям мощных игровых компьютеров она просто не нужна. У них всё и так молниеносно запускается.
Как отключить службу в windows 10
Если было решено отключить SuperFetch, в Windows 10 это можно сделать тремя способами:
- через управление службами;
- с помощью командной строки;
- с помощью редактора реестра.
Как отключить утилиту
Операционная система Windows 10 использует SuperFetch по умолчанию и не рекомендует ее отключать. Но если вы решились все-же остановить ее работу, то следуйте этим инструкциям.
Вариант 1. Специальная программа Superfetch.exe
Как ускорить работу системы с помощью superfetch и flash-накопителя
Если оперативная память вашего ПК небольшая, но хочется улучшить скорость работы системы, то вам поможет SuperFetch и flash-память. Конечно такого же эффекта как от ОЗУ не будет, но и жесткий диск на деле оказывается медленнее, чем съемный носитель. Чтобы ускорить работу системы делаем следующие шаги:
- Подключаем flash-накопитель к компьютеру (достаточно объема в 4 Гб).
- На рабочем столе у вас всплывет окно автозапуска и в нем выбираем опцию «Ускорить работу системы».
Командная строка
Запустите командную строку от имени администратора Windows 10. Теперь выполните простую команду: sc config SysMain start= disabled.
Компоненты службы sysmain
У службы пять компонентов, и вы можете проверить их статус в PowerShell от имени администратора командлетом Get-MMagent (MM – Memory Management, т.е. агент управление памятью). На картинке ниже стандартное состояние компонентов.
Управление новыми компонентами SysMain осуществляется командлетами Enable-MMagent и Disable-MMagent. Префетчинг, унаследованный из старых ОС, контролируется только в реестре (для указанных в документации параметров PowerShell запрос не поддерживается).
Сводная таблица компонентов службы и методов управления ими.
Компонент | Назначение | Управление |
---|---|---|
MemoryCompression | Сжатие памяти | PowerShell |
PageCombining | Объединение страниц памяти с одинаковым содержимым | |
ApplicationPreLaunch | Предугадывание запуска приложений | |
ApplicationLaunchPrefetching | Системный префетчинг запуска приложений | Реестр |
OperationAPI | Предоставление другим приложениям доступа к системному префетчингу через API |
Вы можете включать и выключать отдельные компоненты службы, и я покажу примеры в контексте диагностики.
Насколько безопасно ее отключение?
Стоит SuperFetch отключить или нет Windows 7? Никаких проблем не возникнет, если все выключить. Служба никак не влияет на конфиденциальность данных и в подавляющем большинстве случаев слабо нагружает ресурсы системы. Хуже точно не станет, так что не стоит этого бояться.
Другой вопрос, что нет особого смысла специально это делать. Служба не просто так мигрирует из одной версии ОС в другую на протяжении почти 20 лет. Если бы она чему-то особо мешала, то SuperFetch вырезали из ядра системы. Если бы она вызывала нестабильность Windows, то от нее бы точно избавились.
Повышение производительности под нагрузкой
Польза от оптимизации ОС проявляется в ситуациях, когда аппаратных ресурсов не хватает. Сжатие памяти нацелено на сценарий, когда вся память занята, и приходится сбрасывать ее на диск, теряя производительность при подкачке.
Наибольший эффект от технологии проявляется при сочетании недостатка памяти с существенной дисковой нагрузкой.
Сжатие памяти приносит больше пользы медленным, чувствительным к подкачке дискам — HDD и eMMC. Твердотельный накопитель нагрузить под завязку сложнее, но если вам это удалось, то избавление от лишних операций I/O лишним не будет.
Принцип работы
Когда диспетчер памяти ощущает недостаток памяти, он не сбрасывает неиспользуемые страницы памяти на диск, а сжимает их. В файл подкачки запись ведется лишь в том случае, когда алгоритмы диспетчера памяти определяют, что сжатие не компенсирует недостаток памяти.
Хранящаяся в памяти коллекция сжатых страниц называется compression store. Система использует единое хранилище для всех приложений (Win32 и UWP), а также индивидуальные хранилища для всех приложений Windows Runtime, обеспечивающие тримминг и своп. Вместо записи страниц в файл подкачки, диспетчер памяти сжимает их и помещает в соответствующее хранилище.
Как ни странно, в документе ничего не говорится про еще одну функцию службы SysMain — объединение страниц памяти (page combining). Диспетчер памяти определяет страницы с одинаковым содержимым и объединяет их. Эта функция работает в рамках службы независимо от сжатия памяти.
Редактор реестра
Для отключения сервиса SuperFetch можно воспользоваться Редактором реестра:
- Необходимо нажать сочетание клавиш Win R и ввести команду regedit.
- В Редакторе реестра необходимо ввести в адресную строку Компьютер…PrefetchParameters. По данному адресу также получится перейти вручную.
- Справа на экране должен быть отображен среди других параметров EnableSuperfetch. Дважды нажмите на него левой кнопкой мыши и выполните замену числового значения на 0. Если же подобный параметр отсутствует, в таком случае нужно создать его, нажав ПКМ на пустое поле, и в контекстном меню последовательно выбрать “Создать” -> ”Параметр DWORD”.
- Как только отключите сервис, надо перезагрузить ПК.
Решение ошибок
Самый действенный способ исправить любую ошибку — отключить службу. Это наиболее эффективно, но также можно попробовать такие способы:
- изменять значения параметров службы;
- переустановить недавно установленные приложения;
- проверить жесткий диск на ошибки.
С помощью реестра
Ещё один вариант отключения сервиса предполагает использование редактора реестра. Напоминаем, что вносить любые правки в системный реестр следует предельно осторожно, поскольку неправильные действия пользователя могут привести к нестабильной работе и краху системы. Перед внесением коррективов рекомендуется создать резервную копию реестра.
Как отключить SuperFetch в реестре Windows 10:
Таким же способом отключается SuperFetch и в Windows 7.
Сжатие памяти в windows 10
В Windows 10 отображаемое в графическом интерфейсе имя службы Superfetch сменилось на SysMain, что соответствует фактическому названию службы. Видимо, так Microsoft обозначила смещение основного назначения службы с унаследованного из старых ОС префетчинга приложений к новой функции — сжатию памяти (memory compression).
Компания опубликовала рассказ о технологии еще в августе 2021 года, но почему-то исключительно в приложении Центр отзывов (копия в PDF). Как следствие, информация прошла мимо многих пользователей Windows 10. Ниже мое краткое объяснение и дополнительные сведения.
Следует ли отключать
Многие считают, что раз иногда служба SuperFetch может вызывать проблемы в работе компьютера, то ее нужно отключить в профилактических целях, не дожидаясь негативных последствий от ее работы, как советуют в некоторых статьях.
Такой подход оказывается бессмысленным при рассмотрении следующих утверждений:
- при отключении службы уменьшится скорость загрузки приложений;
- система начнет чаще обращаться к винчестеру, в результате увеличится оказываемая на него нагрузка;
- если в компьютер встроено ОЗУ с большим объемом памяти, то нет смысла в высвобождении нескольких мегабайт — если же ее мало, тогда при отключении службы система начнет тормозить, подвисать.
Снижение объема записи на диск
За счет сжатия и объединения страниц памяти сокращается число операций ввода-вывода и соответственно снижается объем записи на диск. Поэтому бессмысленно отключать службу SysMain ради экономии ресурса SSD.
Способы запуска
Как было сказано выше, Superfetch Windows 8 активизируется автоматически. Он «скрывается» за одним из процессов «Svchost.exe», не имея доступу к ресурсам сети. Чтобы собирать данные (статистику) применяется диспетчер фильтрации, встроенный в систему.
В ней расположены различные базы данных, записи в которых постоянно изменяются при перенастройке приоритетов.
Возможен вариант, когда кто-то (может и Вы) ранее деактивировал данную службу. Поэтому, включать её нужно вручную. Делается это просто:
- Нажимаем Win R и вводим запрос «services.msc»:
- В перечне находим нужный элемент и открываем его свойства (двойной щелчок левой кнопкой мышки или через контекстное меню).
- Выбираем тип «Автоматический» и жмем «Запустить»:
Через диспетчер задач
Этот способ в отличие от вышерассмотренных вариантов подразумевает остановку SuperFetch только на время сеанса, то есть при следующем старте системы штатная системная служба будет снова работать. Чтобы временно отключить сервис, выполняем такие шаги:
Мы разобрали несколько эффективных способов, позволяющих деактивировать сервис SuperFetch. Несмотря на то, что служба, появившаяся вместе с Vista в 2007 году, уже устарела и результаты её работы не слишком впечатляют с учётом скорости современного оборудования, отключать супервыборку стоит лишь в тех случаях, когда она действительно нагружает диск.
А какой способ выбрали вы? Получилось ли таким образом устранить медлительность системы? Расскажите об этом в комментариях.
Через командную строку
Отключение SuperFetch также можно произвести через командную строку. Длят этого следует открыть консоль CMD на правах администратора и вставить туда команду sc config SysMain start= disabled.
Важно! В этой ситуации не подходит команда net stop, поскольку она только на время сможет остановить службу, при этом не изменив ее тип запуска. Для вступления новых настроек в силу нужно перезагрузить компьютер.
Через приложение службы
Чтобы открыть приложение Службы, нужно:
- В командной строке вписать команду services.
- Далее надо в списке отыскать службу SuperFetch и 2 раза нажать левой кнопкой мыши по ней.
- Откроется диалоговое окно, в котором следует нажать кнопку “Остановить”, а в специальном меню “Тип запуска” надо выбрать пункт “Остановлена”. После этого нажмите последовательно “Применить”->”ОК” и произведите перезагрузку ПК.
Через службы
Проще всего отключить работу SuperFetch, выполнив следующие действия:
- открываем оснастку «Службы» любым удобным способом, например, используя Поиск или консоль «Выполнить» (Wi R) и команду «services.msc»;
- в окне системных служб будет список, включающий все локальные компоненты, выстроенные по умолчанию в алфавитном порядке. Находим здесь SuperFetch;
- выбрав сервис из перечня, жмём «Остановить» на панели слева, чтобы сервис прекратил работу (если блок не отображается, в нижней части окна выбираем вкладку «Расширенный») или жмём ПКМ по имени службы и выбираем пункт «Остановить»;
- чтобы служба не запускалась автоматически, а была отключена навсегда, идём в «Свойства» из контекстного меню (жмём ПКМ на SuperFetch) и на вкладке «Общие» окна свойств из выпадающего меню меняем «Тип запуска», выставив значение «Отключена» (или «Вручную»);
- жмём «ОК» и закрываем окна.
После выполненных манипуляций перезагружаем комп и проверяем работу. Если в ходе диагностики выяснилось, что служба не имеет отношения к нагрузке на ресурсы, включить SuperFetch можно, выполнив аналогичные действия по запуску окна служб, только на этот раз нажать нужно «Запустить», а в свойствах выбрать «Тип запуска» – «Автоматически».
Заключение
Я исторически ратую за подробную документацию по продуктам Microsoft, и случай с SysMain является одним из худших примеров. Описание главной системной службы погребено в центре отзывов и никак не связано с фрагментами информации в блоге инсайдерской программы и справкой по командлету PowerShell, у которого в свою очередь не работают параметры управления унаследованными компонентами.
Да, у Microsoft есть официальные рекомендации по настройке служб Windows Server 2021 с Desktop Experience, которые с оговорками можно распространить на Windows 10. Там не рекомендуется изменять тип запуска службы (именно это означает ремарка No guidance).
Этой статьей я свожу всю известную мне информацию о SysMain воедино и восполняю пробел в документации. Если у вас отключена служба или ее отдельные компоненты, напишите в комментариях, чем вы руководствовались.