Zde je příklad před a po clusterování procesů v instalaci systému Windows 11 s 64 GB paměti RAM. V klidovém stavu jsme klesli z 224 na 126 procesů najednou, i když kolísá až na 123. Snížení o téměř 100 procesů.


V minulosti systém Windows sdružoval mnoho systémových služeb do jediného procesu svchost.exe. Počínaje systémem Windows 10 (verze 1703) to však společnost Microsoft změnila: pokud má počítač více než 3,5 GB paměti RAM, systém Windows rozdělí každou službu do vlastního nezávislého procesu. Toto rozhodnutí je založeno čistě na množství paměti zjištěném při spuštění.
A proč oddělovat procesy? No, hlavně proto, že jejich oddělením se v případě výpadku jedné služby nezhroutí celá skupina. Je to také otázka viditelnosti. Ve Správci úloh lze snáze zjistit, která konkrétní služba spotřebovává procesor (bez nutnosti zkoumání v rámci skupiny). Je to otázka bezpečnosti, protože izolace mezi procesy zabraňuje řetězení chyb.
Systém Windows však můžeme obelstít nastavením uměle vysoké prahové hodnoty. V domnění, že nemá dostatek operační paměti, kterou by mohl "plýtvat", je systém Windows nucen zabalit služby do menšího počtu kontejnerů, čímž se drasticky sníží celkový počet procesů.
Výhod shlukování procesů je několik, například snížení režie procesoru. Každý nezávislý proces vyžaduje, aby procesor spravoval svá vlastní vlákna, priority a přístupy do paměti. Jejich seskupením se sníží zátěž procesoru při správě.
Je mnohem snazší sledovat Správce úloh bez stovek stejných řádků a získáme zbytkovou úsporu paměti, protože každý otevřený proces spotřebovává malé množství paměti RAM už jen tím, že existuje (vlastní podpůrná struktura). Jejich seskupením se oškrábe několik MB zdánlivé spotřeby.
Jediný možný negativní dopad je ten, který je uveden výše. Pokud v clusterovém systému selže služba, může to stáhnout ostatní služby, které sdílejí stejný kontejner, a způsobit restart několika funkcí najednou. Pokud jsou oddělené, selže pouze tato konkrétní služba, aniž by to ovlivnilo ostatní. Díky odděleným procesům je obtížnější, aby selhání zabezpečení jedné služby ovlivnilo ostatní součásti systému. Pokud dojde k neočekávané chybě, můžete vždy vrátit clusterování zpět.
Nejedná se o žádný hack nebo nový zázračný trik. Je to něco, co lze nalézt v oficiální dokumentaci společnosti Microsoft k tomuto chování na jejím technickém portálu Microsoft Learn, který je určen vývojářům a správcům systémů.
Pokud si to chcete vyzkoušet, zde je tabulka s některými ekvivalenty podle vaší paměti RAM. Funguje pro Windows 10 i Windows 11. Chcete-li ji použít, stačí otevřít CMD nebo PowerShell jako správce, spustit příkaz a restartovat počítač.
Registr SvcHostSplitThresholdInKB nastavuje "práh" paměti RAM. Pokud má počítač více paměti RAM, než je hodnota nastavená v příkazu, systém Windows procesy rozdělí. Pokud jich má méně, seskupí je dohromady. Proto se v tabulce příkazů vždy objeví s hodnotou vyšší, než je vaše aktuální paměť RAM; tímto způsobem obelstíme systém Windows, aby služby hromadně seskupil.
(Pokud vaše paměť RAM není v tabulce uvedena, jednoduše vypočítejte dvojnásobek vaší aktuální paměti v GB a použijte vzorec: GB x 1024 x 1024).
| Vaše aktuální paměť RAM | Příkaz k použití (Seskupte procesy) |
|---|---|
| 64 GB | reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 134217728 /f (platí prahová hodnota 128 GB) |
| 32 GB | reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 67108864 /f(platí práh 64 GB) |
| 16 GB | reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 33554432 /f(platí práh 32 GB) |
| 8 GB | reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 16777216 /f (platí 16GB práh) |
| 4 GB | reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /t REG_DWORD /d 8388608 /f (platí prahová hodnota 8 GB) |
Chcete-li některou z těchto změn vrátit do stavu z výroby, použijte tento další příkaz a restartujte počítač.
reg delete "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB /f





