Оптимізація Windows: як кластеризувати процеси svchost, щоб звільнити процесор та оперативну пам'ять

No comments

26.05.2026|

No comments

Tiempo de lectura Lectura: 38 s
Número de palabras Palabras: 118
Número de visitas Visitas: 55
Icono de traducción

Ось приклад до і після кластеризації процесів на установці Windows 11 з 64 ГБ оперативної пам'яті. Ми зменшили кількість процесів у режимі очікування з 224 до 126 одразу, хоча вона коливається до 123. Зменшення майже на 100 процесів.

Раніше Windows об'єднувала багато системних служб в один процес svchost.exe. Однак, починаючи з Windows 10 (версія 1703), Microsoft змінила це: якщо ваш ПК має більше 3,5 ГБ оперативної пам' яті, Windows розділяє кожну службу на окремий незалежний процес. Це рішення ґрунтується виключно на обсязі пам'яті, виявленому під час запуску.

А навіщо розділяти процеси? Ну, головним чином тому, що, ізолюючи їх, якщо один сервіс виходить з ладу, вся група не зупиняється. Це також питання наочності. У диспетчері завдань легше побачити, який саме сервіс споживає процесор (без необхідності розбиратися в групі). Це питання безпеки, оскільки ізоляція між процесами дозволяє уникнути ланцюгових помилок.

Але ми можемо обдурити Windows, встановивши штучно високий поріг. Вважаючи, що їй не вистачає оперативної пам'яті для "марнування", Windows змушена упаковувати служби в менші контейнери, різко зменшуючи кількість загальних процесів.

Переваг кластеризації процесів декілька, наприклад, зменшення навантаження на процесор. Кожен незалежний процес вимагає від процесора керування власними потоками, пріоритетами та доступом до пам'яті. Об'єднавши їх разом, навантаження на процесор зменшується.

Набагато простіше стежити за диспетчером завдань без сотень однакових рядків, і ми отримуємо економію залишкової пам'яті, оскільки кожен відкритий процес споживає невелику кількість оперативної пам'яті за самим фактом свого існування (власна структура підтримки). Згрупувавши їх разом, можна заощадити кілька мегабайт фантомного споживання.

Єдиний можливий негативний вплив - згаданий вище. Якщо сервіс виходить з ладу в кластерній системі, він може потягнути за собою інші сервіси, які використовують той самий контейнер, що призведе до перезапуску декількох функцій одночасно. Якщо ж вони відокремлені, то збій відбувається лише в цьому конкретному сервісі, не впливаючи на решту. Розділені процеси ускладнюють вплив збою безпеки в одному сервісі на інші компоненти системи. Якщо ви зіткнулися з несподіваною помилкою, ви завжди можете повернути кластеризацію назад.

Це не хакерство і не новий чудодійний трюк. Це те, що можна знайти в офіційній документації Microsoft про таку поведінку на технічному порталі Microsoft Learn, призначеному для розробників і системних адміністраторів.

Якщо ви хочете спробувати, ось таблиця з деякими еквівалентами відповідно до вашої оперативної пам'яті. Вона працює як для Windows 10, так і для Windows 11. Щоб застосувати її, просто відкрийте CMD або PowerShell від імені адміністратора, запустіть команду і перезавантажтеся.

Регістр SvcHostSplitThresholdInKB встановлює "поріг" оперативної пам'яті. Якщо на вашому комп'ютері більше оперативної пам'яті, ніж вказано у команді, Windows розділить процеси. Якщо менше - об'єднає їх разом. Ось чому вони завжди з'являються у таблиці команд зі значенням, більшим за поточний обсяг оперативної пам'яті; так ми обманом змушуємо Windows групувати служби разом.

(Якщо вашого об'єму оперативної пам'яті немає в таблиці, просто подвійте ваш поточний об'єм пам'яті в ГБ і застосуйте формулу: Обсяг пам'яті в ГБ х 1024 х 1024).

Ваша поточна оперативна пам'ятьКоманда для застосування (згрупуйте процеси)
64 ГБreg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 134217728 /f

(Застосовується поріг 128 ГБ)
32 ГБreg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 67108864 /f

(Застосовується поріг 64 ГБ)
16 ГБreg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 33554432 /f

(Застосовується поріг 32 ГБ)
8 ГБreg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 16777216 /f

(Застосовується поріг 16 ГБ)
4 ГБreg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 8388608 /f

(Застосовується поріг у 8 ГБ)

Щоб повернути будь-які з цих змін до заводських налаштувань, просто скористайтеся іншою командою і перезавантажте систему.

reg delete "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /f

Залишити коментар

Хочеш щось сказати?

Este blog se aloja en LucusHost

LucusHost, el mejor hosting