Пользователи Windows 11 и Windows 10 могут столкнуться с тем, что Служба узла SysMain, наблюдаемая в диспетчере задач активно нагружает процессор, вплоть до 100%, в некоторых случаях также можно заметить повышенную нагрузку на диск. Сценарий может отличаться: это может быть повышенная нагрузка каждый раз при входе в систему в течение некоторого времени, случайные всплески активности или другие варианты.
В этой инструкции подробно о том, за что отвечает служба SysMain, что делать, если она вызывает повышенную нагрузку на ресурсы компьютера, о возможных причинах такого поведения и дополнительная информация, которая может оказаться полезной в контексте рассматриваемой темы.
Назначение службы SysMain
Служба SysMain в Windows присутствует уже давно, но ранее называлась SuperFetch. Назначение службы — увеличивать скорость загрузки системы, запуска приложений и общую отзывчивость системы по мере использования.
Это достигается следующими методами:
- Для ускорения загрузки ОС SysMain вычисляет оптимальный шаблон загрузки системных процессов в память: эти вычисления проводятся в фоновом режиме во время простоя компьютера и повышенная нагрузка со стороны SysMain в эти моменты — нормальное явление. Данные записываются службой в папку C:\Windows\Prefetch
- Служба анализирует то, какие программы чаще всего запускает пользователь (и система в фоновом режиме) и использует механизмы предварительной загрузки (префетчинг), кэширования кода и функций программ в оперативной памяти, а также объединения странниц памяти для более быстрого доступа к ним в дальнейшем и повышения производительности.
- Работа функции сжатия памяти также обеспечивается службой SysMain — эта функция сжимает неиспользуемые данные в оперативной памяти для снижения обращений к файлу подкачки.
Обычно служба узла SysMain не вызывает повышенной нагрузки ни в отношении процессора, ни для других ресурсов компьютера, за исключением кратковременных скачков при штатном выполнении тех или иных операций.
Как исправить высокую нагрузку SysMain
В некоторых случаях, особенно на старых и ограниченных в ресурсах компьютерах, эффект от работающей службы может быть обратный заявленному: вместо повышения производительности — постоянная или очень продолжительная нагрузка, обычно — на процессор, со стороны SysMain, не позволяющая нормально работать за компьютером.
Возможные причины высокой нагрузки на CPU, RAM и диск
Это может быть вызвано следующими факторами:
- Малым объемом оперативной памяти — обычно о проблемах с узлом службы SysMain сообщают пользователи компьютеров с 4 Гб RAM или менее. Пользователи с объемом ОЗУ 16 Гб и более редко сталкиваются с проблемой при условии исправной системы.
- Медленным жестким диском (особенно на ноутбуке), ошибками файловой системы, аппаратными проблемами с диском, малым количеством свободного места на системном разделе диска.
- В некоторых случаях изменить поведение службы SysMain в худшую сторону может отключение файла подкачки Windows. Если вы это делали, попробуйте снова включить файл подкачки. Инструкция по настройке файла подкачки в Windows.
- Сторонние программы очистки оперативной памяти, или «ускорения в играх» также могут вызывать постоянную высокую нагрузку со стороны службы SysMain (поскольку иногда мешают её исправной работе). При наличии таких программ проверьте, проявляется ли проблема, если отключить их автозагрузку и работу в фоновом режиме.
- Работа сторонних антивирусов и системных служб потенциально также может повлиять на работу службы. Можно проверить, наблюдается ли проблема в режиме чистой загрузки Windows.
Отключение службы SysMain
Самый простой и быстрый способ снизить нагрузку службы SysMain, а точнее — полностью устранить её — отключить эту службу. Служба не является обязательной и её отключение не приведёт к неполадкам, однако, в зависимости от конкретной системы может привести как к ухудшению общей производительности, так, иногда — и к её улучшению.
Примечание: в общем случае, при отсутствии проблем с работой службы SysMain её отключение не рекомендуется, в том числе и для современных ПК и ноутбуков с SSD.
Для отключения службы SysMain вы можете использовать один из следующих способов:
- Нажать клавиши Win+R на клавиатуре, ввести services.msc в окно «Выполнить» и нажать Enter. В списке служб найти SysMain, дважды нажать по службе, остановить службу, установить тип запуска в «Отключена» и нажать «Ок».
- Запустите командную строку от имени администратора и введите команду
sc stop "SysMain" & sc config "SysMain" start=disabled
- Откройте редактор реестра, перейдите в раздел
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain
измените значение параметра Start на 4, примените настройки и перезагрузите компьютер.
Отключение компонентов SysMain
Вторая возможность — отключение отдельных компонентов SysMain, сделать это можно с помощью Windows PowerShell:
- Запустите Терминал Windows или Windows PowerShell от имени администратора — сделать это можно в меню по правому клику на кнопке «Пуск».
- Введите команду Get-MMagent чтобы получить сведения о состоянии компонентов SysMain, по умолчанию для всех из них (кроме третьего и последнего) будет указано True
- Для включения или отключения компонентов (кроме ApplicationLaunchPrefetching) вы можете использовать команды
Enable-MMagent -имя_компонента
и
Disable-MMagent -имя_компонента
соответственно
- Для отключения ApplicationLaunchPrefetching зайдите в редактор реестра в раздел
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
и установите значение 0 для параметра EnablePrefetcher (значение по умолчанию — 3).
Назначение компонентов SysMain:
- ApplicationLaunchPrefetching — префетчинг запуска приложений
- ApplicationPreLaunch — предварительный запуск приложений
- MemoryCompression — сжатие памяти
- OperationAPI — API для доступа к службе SysMain из других приложений
- PageCombining — объединение одинаковых страниц оперативной памяти
В случае, если высокая нагрузка на процессор вызвана работой конкретного компонента, его отключение должно решить проблему без необходимости полного отключения службы SysMain.
В некоторых пользователей служба узла SysMain грузит диск Windows 10. Она может полностью загрузить слабый процессор компьютера. Раздел служб содержит её описание: поддерживает и улучшает производительность системы. Не очень похоже на повышение производительности.
Эта статья расскажет, что это за служба SysMain грузит диск в Windows 10. В двух словах постоянно используемые приложения заранее переносятся в оперативную память в сжатом виде. Вопрос заключается в том нужно и можно ли её полностью отключить и в какой ситуации.
Описание SysMain полностью соответствует описанию ранее известной службы SuperFetch. В актуальной версии операционной системы уже не получится найти SuperFetch, есть только SysMain. Работает скрытно в фоновом режиме, анализируя данные в оперативной памяти.
Часто используемые приложения заранее кэшируются в ОЗУ. Идея заключается в том, что когда Вы запускаете приложение оно в несколько раз быстрее загружается. Во время работы служба обращается к диску. Жёсткий диск начинает тормозить, что сказывается на работе ПК.
В диспетчере задач раздел Структура памяти отображает, сколько Используется сжатой памяти или, сколько В сжатой памяти хранится данных и собственно Зарезервировано (память, содержащая кэшированные данные и код, которые сейчас не используются).
В сравнении с классическим файлом подкачки (которым собственно ещё можно управлять и настраивать), служба SysMain работает автоматически без вмешательства пользователя. Её можно только отключить или включить (собственно по умолчанию она и включена).
Как отключить службу SysMain в Windows 10
Важно! Не рекомендуем полностью отключать службу узла SysMain. Если же она грузит диск или процессор, можете в несколько нажатий перезапустить её. Обладателям мощных игровых компьютеров она просто не нужна. У них всё и так молниеносно запускается.
Локальные службы
Откройте службы, выполнив команду Services.msc в окне Win+R. В списке всех служб (локальных) перейдите в Свойства службы SysMain.
Измените Тип запуска с Автоматически на значение Отключена. Чтобы, убрать нагрузку можно Остановить и заново Запустить службу.
Командная строка
Запустите командную строку от имени администратора Windows 10. Теперь выполните простую команду: sc config SysMain start= disabled.
Windows PowerShell
За что отвечает служба узла SysMain более-менее понятно. Можно с уверенностью сказать: за сжатие данных в оперативной памяти. И собственно их кэширование для увеличения скорости. Есть возможность включать или отключать отдельные компоненты службы.
В оболочке Windows PowerShell выполните команду Get-MMAgent. В результатах смотрите все компоненты службы SysMain. Думаю нужно отдельно добавить их краткое описание.
- ApplicationLaunchPrefetching — системный Prefetching запуска нужных приложений. Это собственно основной виновник загрузки диска и процессора.
- ApplicationPreLaunch — собственно и есть функция предугадывания запуска часто используемых приложений. Заранее загружает их в память.
- PageCombining — отвечает за объединение страниц памяти с одинаковым содержимым. Уменьшает количество запросов/обращений к памяти.
- MemoryCompression — указывает на сжатие памяти.
- OperationAPI — предоставление другим приложениям доступа к SysMain (SuperFecth) через API. Разработчикам Microsoft не закручивает гайки.
Например, для отключения компонента сжатия памяти MemoryCompression достаточно выполнить команду: Disable-MMagent -MemoryCompression. Всё просто! Можно его включить обратно: Enable-MMagent -MemoryCompression.
Компонент Prefetcher отключается только изменением значений реестра. Перейдите в раздел: HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Session Manager\ Memory Management\ PrefetchParameters. Измените значение параметра EnablePrefetcher на 0.
Заключение
- В случае нехватки памяти происходит процесс сжатия данных. Как минимум сразу же объединяются страницы с одинаковым содержимым. Снижается число обращений к памяти, а в итоге и объём данных записи на диск. Сейчас можно отследить количество сжатых данных.
- Служба узла SysMain является лучшей в сравнении с файлом подкачки. Из минусов система использует мощности процессора для работы со сжатой памятью. Может быть, более заметно на ноутбуках или слабых ПК. Тогда в диспетчере наблюдается загрузка диска и процессора.
- Диспетчер задач в обновлении Creators Update (1703) получил возможность отслеживания использования оперативной памяти. В разделе производительность можно посмотреть структуру памяти. Возможно, Вам не помешает обновить до последней версии Windows 10.
(19 оценок, среднее: 4,47 из 5)
Администратор и основатель проекта Windd.pro. Интересуюсь всеми новыми технологиями. Знаю толк в правильной сборке ПК. Участник программы предварительной оценки Windows Insider Preview. Могу с лёгкостью подобрать комплектующие с учётом соотношения цены — качества. Мой Компьютер: AMD Ryzen 5 3600 | MSI B450 Gaming Plus MAX | ASUS STRIX RX580 8GB GAMING | V-COLOR 16GB Skywalker PRISM RGB (2х8GB).
Содержание
- Что за это за служба
- Вариант 1: Отключение SysMain
- Способ 1: «Командная строка»
- Способ 2: «Службы»
- Способ 3: «Редактор реестра»
- Вариант 2: Обновление системы
- Вариант 3: Установка актуальных драйверов для компонентов
- Вариант 4: Переустановка/откат системы
- Вопросы и ответы
Что за это за служба
SysMain преимущественно взаимодействует с физической и оперативной памятью и является интеллектуальной функцией, которая мониторит действия пользователя на ПК, оптимизируя и ускоряя работу системы. Такое отслеживание позволяет быстрее запускать чаще всего используемые приложения.
В некоторых случаях со службой возникают проблемы, и она начинает грузить диск в Виндовс 10. В результате компьютер подвисает и тормозит, а пользователь «вылетает» на рабочий стол из приложений. Это происходит из-за высокой нагрузки на жесткий диск или центральный процессор. Чтобы исправить ситуацию, можно временно отключить службу, но есть и другие способы избавиться от неполадки.
Если SysMain сильно нагружает компоненты системы, что можно проверить в «Диспетчере задач», то есть возможность ее отключить, используя штатные средства Windows. При этом функция не сможет дальше отслеживать деятельность и оптимизировать скорость работы при нормальных обстоятельствах.
Способ 1: «Командная строка»
Самый простой способ отключить процесс — это воспользоваться штатным средством «Командная строка»:
- Запустите «Командную строку» от имени администратора. Существует несколько способов сделать это.
Подробнее: Запуск «Командной строки» от имени администратора в Windows 10
- Скопируйте и вставьте команду
sc config SysMain start=disabled
и нажмите на клавишу «Enter».
После этого служба SysMain отключится и перестанет грузить диск. Вновь запустить ее через «Командную строку» можно с помощью команды sc config «SysMain» start=auto && sc start «SysMain»
.
Способ 2: «Службы»
Один из вариантов отключения работы службы — это использование приложения «Службы», которое, по сравнению с предыдущим способом, позволяет более тонко настроить работу SysMain:
- Одновременно зажмите клавиши «Win + R», чтобы вызвать диалоговое окно «Выполнить». Впишите команду
services.msc
в специальной строке и кликните по кнопке «ОК», чтобы быстро запустить приложение. - В разделе «Локальные» найдите службу «SysMain». Пункты можно упорядочить по алфавиту, нажав на вкладку «Имя». Щелкните правой кнопкой мыши по названию и вызовите «Свойства».
- На вкладке «Общие» в меню «Тип запуска» выберите из раскрывающегося перечня пункт «Отключена», а в разделе «Состояние» кликните по кнопке «Остановить». Нажмите на «ОК», чтобы применить настройки.
Через приложение «Службы» аналогичным образом можно вновь запустить SysMain, выбрав опцию автоматического или ручного запуска и нажав на соответствующую кнопку.
Способ 3: «Редактор реестра»
Чтобы остановить работу SysMain, можете изменить один из параметров реестра Windows 10:
- Найдите и запустите приложение «Редактор реестра», используя поиск в «Пуске».
- На панели слева в каталоге «HKEY_LOCAL_MACHINE» разверните папку «SYSTEM». Затем откройте «CurrentControlSet» и папку со службами «Services».
- Нажмите на «SysMain» в списке, в результате чего справа отобразятся параметры службы. Найдите «Start» и кликните по ней правой кнопкой мыши. Из контекстного меню выберите пункт «Изменить».
- В строке «Значение» вместо «2» введите «4» и нажмите на кнопку «ОК».
После изменения параметров через «Редактор реестра» потребуется перезагрузить ОС, чтобы новые настройки вступили в силу.
Вариант 2: Обновление системы
Некорректная работа штатных служб, включая SysMain, может происходить из-за неудачно обновленной или устаревшей версии операционной системы. Microsoft регулярно выпускает апдейты, оптимизирующие ОС, избавляющие от ошибок и улучшающие безопасность пользовательских данных. Проверьте наличие актуальных компонентов вручную, если отключена автоматическая функция. Для этого предусмотрены фирменные утилиты, встроенное средство «Центр обновлений», а также сторонний софт. В нашем отдельном материале более детально описаны все способы с пошаговыми инструкциями.
Подробнее: Обновление Windows 10 до последней версии
Вариант 3: Установка актуальных драйверов для компонентов
Обновления для программных и аппаратных компонентов также желательно устанавливать по мере их выхода — это обеспечивает стабильную работу Windows 10. Если драйверы устройства устарели или в их работе произошел сбой, то это может привести к различным последствиям, в том числе и к упадку производительности компьютера.
Существует множество способов обновить драйверы, например, в самой среде ОС есть встроенные средства для проверки и загрузки актуальных версий. Также для этого используют специализированный софт или официальные сайты производителей оборудования, например для графических адаптеров. Наш автор подробно разбирал все эффективные методы по обновлению драйверов в Windows 10.
Подробнее: Обновляем драйверы в Windows 10
Вариант 4: Переустановка/откат системы
Постоянно отключать одну из важных служб, оптимизирующих систему, нецелесообразно, поэтому попробуйте лучше устранить неполадку. Если ни один из вышеописанных вариантов не помог избавиться от проблемы, при которой SysMain грузит диск, то нужно задуматься о переустановке или откате ОС.
Переустановить «десятку» можно несколькими способами. Встроенные средства предлагают откат к предыдущему состоянию системы или же полный сброс настроек и параметров до заводского состояния. Также можно инсталлировать «чистую» ОС с носителя, например с установочной флешки или оптического диска. В нашей статье на сайте автор разбирал все способы переустановки ОС. Следует отметить, что после процедуры все настройки и приложения будут удалены, а данные, если они хранились на основном локальном диске, где стояла операционка, также могут пропасть, если не создать резервную копию.
Подробнее: Способы переустановки Windows 10
При наличии возможности можно установить твердотельный накопитель SSD под ОС, поскольку он работает гораздо быстрее, чем классический HDD. Из наших руководств вы узнаете, как выбрать его, правильно подключить накопитель и настроить его под операционную систему.
Подробнее:
Выбираем SSD для своего компьютера
Рекомендации по выбору SSD для ноутбука
Подключаем SSD к компьютеру или ноутбуку
Настройка SSD под Windows 10
На чтение 4 мин Просмотров 148 Опубликовано
Если вы — владелец операционной системы Виндовс 10 или 11, то можете встретиться с перегрузкой ПК. Возможной причиной чрезмерной нагрузки служит служба на Windows SysMain. Если открыть диспетчер задач, то будет видно о ее повышенной активности.
Если временные явления подобного рода могут быть незаметны для многих пользователей, то при постоянном нагружении, компьютер снизит свою эффективность и производительность. Вряд ли кому-то понравится заторможенное устройство. Но что делать, если служба узла SysMain грузит диск Windows? В нашей статье мы расскажем о самых частых причинах данного явления и как с ним бороться.
Содержание
- Для чего нужна SysMain?
- Причины перегрузки компьютера
- Как решить проблему?
Для чего нужна SysMain?
ОС Виндовс оснащена опцией под названием SysMain. Если вы о ней ранее не слышали, то потому что она имела иное имя (SuperFetch). Главная задача службы заключается в увеличении скоростных характеристик операционной системы устройства, ускорении отклика программ.
Такой процесс осуществляется несколькими методами. Первым делом служба делает оценку ОС и определяет оптимальные параметры для работы. Все шаги выполняются в фоновом режиме, поэтому не мешают пользователю. Повышенная нагрузка является нормальной работой в такой период. В результате все сведения помещаются в папку C:\Windows\Prefetch.
Далее происходит тщательный анализ собранной информации. В том числе определяется, какие именно утилиты и другие приложения пользователь использует чаще всего. Затем осуществляется кэширование кода и объединение элементов для лучшей и быстрой работы.
Следующим шагом выполняется сжатие данных. В результате файл подкачки функционирует лучшим образом.
Отметим, что SysMain в стандартном варианте работы не оказывает нагрузку на процессор ПК и другие элементы. Временные скачки считаются допустимыми. Однако в некоторых моментах случаются сбои, и SysMain грузит диск Windows. В такой ситуации стоит найти решение, избавив компьютер от лишних воздействий, так как он может начать тормозить.
Причины перегрузки компьютера
Самыми главными факторами, из-за которых происходит перегрузка, являются:
- Нехватка оперативной памяти. Для слаженной работы требуется около 16 Гб ОЗУ, если вы обладатель 4 Гб, то есть большой шанс столкнуться с таким родом проблемой.
- Замедленная работа жесткого диска. Обычно диск бывает поврежден или имеет мало свободного места на разделе системы.
- Выключенный файл подкачки.
- Сторонний софт. Чаще всего это утилиты, связанные с очисткой оперативки, а также программы для ускорения игр.
- Активность антивирусов и других подобных служб.
Как решить проблему?
Мы разобрали подробно SysMain на Windows 10, что это понятно, но как устранить перегрузку?
Одним из самых эффективных методов является отключение службы. Однако полностью убирать ее не рекомендуется, так как компьютер будет функционировать не на всю мощность.
Шаги по выключению такие:
- Зажмите одновременно кнопки на клавиатуре Win и R, напишите команду “services.msc”. Затем подтвердите решение на Энтер.
- Откроется окно, где напротив службы SysMain установите отключенный статус и кликните на Ok.
- Активируйте командную строку с правами администрирования и задайте “sc stop «SysMain» & sc config «SysMain» start=disabled”.
- Следующим действием активируйте редактор реестра и найдите раздел с именем “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysMain”.
- В характеристике “Start” установите значение “4”.
- Не забудьте подтвердить все изменения и запустить перезагрузку устройства.
Более щадящим способом снижения нагрузки будет выключение элементов службы SysMain.
Отключить их можно так:
- Активируйте PowerShell с администрированием. Достаточно ПКМ кликнуть на “Пуск”.
- Откроется окно, куда напишите команду “Get-MMagent”. После этого вам станут доступны компоненты службы. По стандарту у каждого стоит статус “True”.
- Чтобы включить элемент, используйте команду “Enable-MMagent -имя_элемента”. Чтобы отключить его “Disable-MMagent -имя_элемента”.
- Зайдите в редактор реестра и найдите раздел с именем “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters”. В нем у характеристики “EnablePrefetcher” задайте значение “3”.
В интернетах бытует устойчивое мнение, что служба SysMain (ранее – SuperFetch) абсолютно не нужна в Windows 10, установленной на SSD. Якобы недалекие разработчики Microsoft не понимают, что префетчинг не дает никакого ускорения на твердотельном диске, и нам приходится учить глупую ОС новой реальности, отключая службу.
К сожалению, эти тезисы основаны на устаревшей информации и не учитывают изменений, произошедших в Windows 10. Отчасти в этом виновата Microsoft, ограничившая доступ к документации центром отзывов.
На самом деле служба сокращает объем записи на диск за счет сжатия и объединения страниц памяти, повышая производительность под нагрузкой. Ее отключение прекрасно вписывается в мифы оптимизации SSD. Обновить их в этом контексте меня давно подталкивал читатель блога Арслан, а последней каплей стала пара дискуссий в форуме. Рассказ о сжатии памяти в сокращенном виде и без анонсов я добавил к разбору мифов еще в январе, а сегодня публикую полный материал в качестве отдельной записи.
[+] Сегодня в программе
В Windows 10 отображаемое в графическом интерфейсе имя службы Superfetch сменилось на SysMain, что соответствует фактическому названию службы. Видимо, так Microsoft обозначила смещение основного назначения службы с унаследованного из старых ОС префетчинга приложений к новой функции — сжатию памяти (memory compression).
Компания опубликовала рассказ о технологии еще в августе 2015 года, но почему-то исключительно в приложении Центр отзывов (копия в PDF). Как следствие, информация прошла мимо многих пользователей Windows 10. Ниже мое краткое объяснение и дополнительные сведения.
Принцип работы
Когда диспетчер памяти ощущает недостаток памяти, он не сбрасывает неиспользуемые страницы памяти на диск, а сжимает их. В файл подкачки запись ведется лишь в том случае, когда алгоритмы диспетчера памяти определяют, что сжатие не компенсирует недостаток памяти.
Хранящаяся в памяти коллекция сжатых страниц называется compression store. Система использует единое хранилище для всех приложений (Win32 и UWP), а также индивидуальные хранилища для всех приложений Windows Runtime, обеспечивающие тримминг и своп. Вместо записи страниц в файл подкачки, диспетчер памяти сжимает их и помещает в соответствующее хранилище.
Как ни странно, в документе ничего не говорится про еще одну функцию службы SysMain — объединение страниц памяти (page combining). Диспетчер памяти определяет страницы с одинаковым содержимым и объединяет их. Эта функция работает в рамках службы независимо от сжатия памяти.
Снижение объема записи на диск
За счет сжатия и объединения страниц памяти сокращается число операций ввода-вывода и соответственно снижается объем записи на диск. Поэтому бессмысленно отключать службу SysMain ради экономии ресурса SSD.
В 2019 году эта экономия вызовет усмешку у многих владельцев SSD, особенно у неоднократно сменивших вполне рабочие диски на более емкие и производительные. Но шесть лет назад хватало людей, озабоченных смертью накопителя от исчерпания циклов перезаписи. Думаю, и сейчас они есть (число комментариев к мифам застыло на отметке 991 лишь потому, что я когда-то массово отключил обсуждение старых записей
Но сжатие памяти в любом случае внедрялось не для этого.
Повышение производительности под нагрузкой
Польза от оптимизации ОС проявляется в ситуациях, когда аппаратных ресурсов не хватает. Сжатие памяти нацелено на сценарий, когда вся память занята, и приходится сбрасывать ее на диск, теряя производительность при подкачке.
Наибольший эффект от технологии проявляется при сочетании недостатка памяти с существенной дисковой нагрузкой.
Сжатие памяти приносит больше пользы медленным, чувствительным к подкачке дискам — HDD и eMMC. Твердотельный накопитель нагрузить под завязку сложнее, но если вам это удалось, то избавление от лишних операций I/O лишним не будет.
Визуальные индикаторы сжатия памяти
В статье Microsoft вообще не упоминается служба SysMain, однако ее связь со сжатием памяти несложно вычислить экспериментальным путем. Кроме того, документ опубликовали перед выходом первой стабильной версии Windows 10, и лишь спустя год, в версии 1607, добавили наглядные сведения о сжатой памяти в диспетчер задач.
Когда служба SysMain включена, вы можете открыть диспетчер задач на вкладке Производительность и в разделе Память убедиться в использовании сжатой памяти, а также увидеть дополнительные сведения, наведя курсор на область Структура памяти.
Также, в Process Explorer вы можете увидеть в дереве процесса System процесс Memory Compression (это был единственный наглядный способ на момент выхода Windows 10). Наконец, с помощью PowerShell вы можете получить текущий статус сжатия памяти командлетом Get-MMagent.
Если же служба SysMain отключена, сжатая память не работает, что видно по тем же показателям.
Компоненты службы SysMain
У службы пять компонентов, и вы можете проверить их статус в PowerShell от имени администратора командлетом Get-MMagent (MM – Memory Management, т.е. агент управление памятью). На картинке ниже стандартное состояние компонентов.
Управление новыми компонентами SysMain осуществляется командлетами Enable-MMagent и Disable-MMagent. Префетчинг, унаследованный из старых ОС, контролируется только в реестре (для указанных в документации параметров PowerShell запрос не поддерживается). Напомню, что суть префетчинга в том, чтобы ускорять операции, которые регулярно обращаются к одним и тем же данным на диске.
Сводная таблица компонентов службы и методов управления ими.
Компонент | Назначение | Управление |
---|---|---|
MemoryCompression | Сжатие памяти | PowerShell |
PageCombining | Объединение страниц памяти с одинаковым содержимым | |
ApplicationPreLaunch | Предугадывание запуска приложений | |
ApplicationLaunchPrefetching | Системный префетчинг запуска приложений | Реестр |
OperationAPI | Предоставление другим приложениям доступа к системному префетчингу через API |
Вы можете включать и выключать отдельные компоненты службы, и я покажу примеры в контексте диагностики.
Диагностика компонентов службы SysMain
В случае аномального поведения службы (например, высокой нагрузки на CPU или диск), можно попробовать определить, является ли причиной тот или иной компонент SysMain. Если у вас командлет Get-MMagent выдает картинку, отличную от приведенной выше, приведите службу в порядок. Вставьте код ниже в PowerShell от имени администратора и перезагрузитесь.
#если служба не запущена, запустить и установить автоматический тип запуска if ((Get-Service sysmain).status -ne "Running") { Start-Service sysmain Set-Service sysmain -StartupType Automatic } #включить все компоненты службы Enable-MMagent -MemoryCompression Enable-MMagent -PageCombining Enable-MMagent -ApplicationPreLaunch Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" -Name EnablePrefetcher -Value 3
Скрипт включает службу и все компоненты, а также устанавливает для SysMain автоматический тип запуска. Если ситуация не исправилась, смотрите в сторону проверки компонентов и системных файлов и исключения сторонних факторов.
Когда проблема возникает при стандартном состоянии службы, можно вести диагностику методом половинного деления. Конечно, нет гарантий, что проблема в конкретном компоненте, но попытка – не пытка. Отключите все компоненты службы, а затем включайте их порционно, отслеживая поведение системы (не забывайте перезагружать ОС после каждой операции).
Синтаксис командлетов PowerShell простой – в качестве параметра передается название компонента. Например, команды для отключения и включение сжатия памяти:
Disable-MMagent -MemoryCompression Enable-MMagent -MemoryCompression
Префетчингом управляет параметр EnablePrefetcher в разделе реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
Его стандартное значение 3 включает префетчинг Windows и его API для сторонних приложений, 2 оставляет только API, а 0 отключает полностью.
Заключение
Я исторически ратую за подробную документацию по продуктам Microsoft, и случай с SysMain является одним из худших примеров. Описание главной системной службы погребено в центре отзывов и никак не связано с фрагментами информации в блоге инсайдерской программы и справкой по командлету PowerShell, у которого в свою очередь не работают параметры управления унаследованными компонентами. Все это никак не способствует повышению уровня технических знаний и принятию информированного решения при настройке службы.
Да, у Microsoft есть официальные рекомендации по настройке служб Windows Server 2016 с Desktop Experience, которые с оговорками можно распространить на Windows 10. Там не рекомендуется изменять тип запуска службы (именно это означает ремарка No guidance
). При этом в документе указан ручной тип запуска, а в Server 2019 и Windows 10 он автоматический. Но эти сведения опять же никак не связаны с техническим описанием службы.
Этой статьей я свожу всю известную мне информацию о SysMain воедино и восполняю пробел в документации. Если у вас отключена служба или ее отдельные компоненты, напишите в комментариях, чем вы руководствовались.