- Afinita CPU umožňuje omezit, která jádra může každý proces použít k optimalizaci nebo izolaci konkrétních úloh.
- Windows Verze 10 a 11 si s jádry ve výchozím nastavení poradí dobře, ale afinita a priorita pomáhají ve speciálních případech, jako jsou problematické hry nebo velmi náročné procesy.
- Afinitu je možné automatizovat pomocí skriptů, zkratek nebo nástrojů, jako je Process Lasso, místo abyste ji pokaždé ručně měnili.
- Zneužití afinity nebo priority může snížit celkový výkon nebo způsobit nestabilitu, proto by se měly používat střídmě.

Pokud používáte Windows pro hraní her, střih videa nebo práci s mnoha aplikacemi současně, pravděpodobně jste se setkali se situacemi, kdy je procesor vytížený na maximum, počítač se pomalu zpomaluje a vy si nejste zcela jisti, co dělat , aby vše opět běželo hladce. Jedním z nejvýkonnějších (a nejméně známých) nástrojů, které systém nabízí, je afinita CPU, která vám umožňuje ručně rozhodnout, která jádra mohou být použita konkrétními procesy.
V tomto článku se krok za krokem podíváme na to, jak to všechno funguje a jak můžete spravovat jádra procesoru pomocí afinity procesů ze Správce úloh , kdy má smysl omezit jádra, jak to kombinovat s prioritou procesů, v jakých případech to může zlepšit výkon her nebo náročných aplikací a v jakých dalších případech to může při nesprávném použití dokonce způsobit pády.
Co je to vícejádrový procesor a jak využívá jádra Windows?

Moderní procesory obsahují více výpočetních jader v rámci jednoho čipu . Každé jádro je procesorová jednotka schopná samostatně provádět instrukce s vlastní logikou a mezipamětí a zároveň sdílet další interní zdroje procesoru.
Od konce 90. let se na trhu začaly objevovat komerční procesory s více než jedním jádrem a dnes je zcela běžné mít CPU s 2, 4, 8, 16 fyzickými jádry a dokonce i více , a to navíc s technologiemi jako Hyper-Threading nebo SMT, které umožňují každému fyzickému jádru zpřístupnit operačnímu systému dvě logická vlákna.
Mnoho jader neznamená, že všechny aplikace budou mít stejný prospěch: software musí být naprogramován pro používání více vláken . Moderní programy, novější herní enginy a editační aplikace se obvykle dobře škálují s více jádry, zatímco starší nebo jednodušší nástroje mohou stále používat pouze jedno nebo dvě.
Za normálních podmínek se systém Windows pokouší automaticky využít všechna dostupná jádra . Plánovač systému rozděluje vlákna procesů mezi jednotlivá jádra s ohledem na prioritu, zatížení systému, energetickou účinnost a další faktory. Ve Windows 10 a Windows 11 je toto velmi propracované, zatímco ve Windows 7 a 8 se občas vyskytly případy, kdy mohla být některá jádra deaktivována nebo nedostatečně využívána kvůli nastavení napájení nebo občasným chybám.
Když si všimneme prudkého poklesu výkonu nebo vidíme, že se hra špatně škáluje, nebo naopak, že náročný úkol znemožní používání počítače, má smysl zvážit úpravu afinity CPU nebo priority některých procesů , abychom ze systému získali trochu více výkonu nebo inteligentněji rozložili zátěž.
Kdy má smysl upravit afinitu CPU?
I když plánovač Windows obvykle odvádí dobrou práci, existují situace, kdy ruční úprava jader, která může konkrétní aplikace používat, hraje zásadní roli. Tomu se říká nastavení „afinity procesoru“ procesu.
Velmi jasným příkladem jsou špatně naprogramované nebo velmi staré hry, které se zmatou, když narazí na příliš mnoho logických jader . Reálné situace se vyskytly u špičkových počítačů, například u systémů se základními deskami X99, 128 GB RAM a procesory Xeon se 14 fyzickými jádry a 28 vlákny s technologií Hyper-Threading, kdy se některé hry jednoduše nespustily nebo zamrzly na černé obrazovce , když se setkaly s tak velkým počtem vláken.
Hry jako For Honor nebo Contagion zobrazovaly chyby typu „nedostatek ID vláken. Snižte počet vláken nebo zvyšte MAX_THREADS_SUPPORTED“ , což nutilo uživatele snížit počet aktivních procesorů z msconfig (například omezením na 14 vláken), aby hra fungovala. Nevýhodou bylo, že toto omezení ovlivňuje celý operační systém, dokud nebudou změny vráceny zpět a počítač restartován.
V těchto případech by ideálním řešením bylo omezit jádra CPU pouze na danou hru a umožnit ostatním aplikacím nadále využívat plný výkon CPU. Toho se dosahuje právě afinitou procesů nebo její kombinací se speciálními skripty a zkratkami, které spouštějí hru se specifickou maskou afinity.
Nastavení afinity má smysl i v případě, že na pozadí běží velmi náročné úlohy (například komprese nebo vykreslování videa) a chcete si rezervovat část procesoru, abyste mohli plynule pokračovat v používání počítače: můžete tento proces uzamknout do několika jader a zbytek nechat volný pro hry nebo jiné interaktivní aplikace.
Jak funguje multitasking a sdílení zdrojů CPU ve Windows

Moderní operační systémy , jako jsou Windows 10 a Windows 11, jsou preemptivní multitaskingové systémy . To znamená, že operační systém sám rozhoduje, kdy a jak dlouho spustit jednotlivé procesy, aniž by aplikacím umožňoval spravovat přístup k hardwaru mezi sebou.
V minulosti existovaly modely kooperativního multitaskingu, kde si programy musely navzájem „předat“ řízení. Když se něco pokazilo, systém ztratil schopnost znovu získat kontrolu, což vedlo k obávaným chybovým obrazovkám nebo úplným pádům systému . Aby se těmto scénářům předešlo, moderní systémy si rezervují určité zdroje a ponechávají si konečné slovo o tom, co v daném okamžiku běží.
Z tohoto důvodu, i když chce hra využívat 100 % CPU, Windows jí neposkytne všechny zdroje . Vždy budou existovat procesy na pozadí nezbytné pro fungování systému: služby, antivirus, ovladače atd. Systém si také obvykle rezervuje logické vlákno pro své vlastní interní úlohy, zejména na CPU s mnoha jádry.
Když náročná hra nebo aplikace vyžaduje hodně CPU, Windows vyjedná, kolik jí přidělí, aniž by ukončil ostatní důležité procesy. Pokud s alokací nejsme spokojeni, můžeme zasáhnout pomocí dvou hlavních nástrojů : priority procesů a afinity CPU.
Změna těchto možností může v některých scénářích zlepšit výkon, ale pokud jsou nakonfigurovány nesprávně, mohou způsobit nestabilitu, zpoždění nebo dokonce úplné zhroucení systému , takže je důležité před experimentováním přesně vědět, co každá z nich dělá.
Priorita procesu vs. afinita CPU: co každá z nich znamená
Ve Správci úloh se po kliknutí pravým tlačítkem myši na proces a výběru karty Podrobnosti zobrazí dvě důležitá nastavení: Nastavit prioritu a Nastavit afinitu . Ačkoli se v diskusích často používají zaměnitelně, jedná se o odlišné pojmy.
Priorita procesu udává, jak často proces dostává čas CPU . Systém Windows nabízí několik úrovní priority: Nízká, Pod normálem, Normální, Nad normálem, Vysoká a V reálném čase.
Zvýšení priority na „Vysoká“ nebo „Nad normální“ může pomoci hře nebo programu citlivému na čas zažít méně přerušení způsobených procesy na pozadí . Používání „Reálného času“ je však na domácím počítači velmi riskantní, protože pro daný proces rezervuje prakticky celý procesor, což může vést k pádu systému, pokud se něco pokazí.
Afinita CPU na druhou stranu určuje, na kterých konkrétních jádrech procesoru může proces běžet . Ve výchozím nastavení mají všechny procesy přístup ke všem jádrům, ale některé procesy můžeme omezit tak, aby běžely pouze na podmnožině logických CPU.
Kombinací obou věcí je možné například přiřadit hře vysokou prioritu a omezit aplikace, které na pozadí využívají hodně CPU, na jedno nebo dvě jádra , čímž se zajistí, že hra bude mít více zdrojů, aniž by musela cokoli zavírat.
Proto se obecně doporučuje „nezasahovat do herní priority“: pokud se používá bez rozdílu, může způsobit více problémů, než jich vyřeší . Mírná úprava nahoru nebo dolů může mít pozitivní účinky, ale je nejlepší se vyhnout extrémům. Pro pokročilou správu priorit jsou k dispozici nástroje jako Process Hacker , pokud potřebujete jemnější pravidla a kontrolu.
Aktivace a kontrola všech jader procesoru ve Windows
Než se budeme zabývat afinitou procesů, je důležité se ujistit, že má systém Windows přístup ke všem jádrům procesoru . Ve Windows 10 a 11 je tato funkce ve výchozím nastavení povolena, pokud je systém BIOS/UEFI správně nakonfigurován, a nevyžaduje žádné úpravy.
Ve starších verzích, jako je Windows 7 nebo 8, bylo možné ručně omezit počet procesorů pomocí nástroje msconfig. Někteří uživatelé tuto možnost povolili v domnění, že to donutí Windows používat všechna jádra, ale ve skutečnosti to uměle omezilo výkon, který mohl dokonce zhoršit.
Klasická metoda byla: do vyhledávacího řádku zadejte msconfig , přejděte na kartu Spuštění , klikněte na Upřesnit možnosti a vyberte „Počet procesorů“, abyste si vybrali, kolik chcete použít. Na počítačích s problémy s kompatibilitou s určitými hrami se tento trik používá ke snížení počtu dostupných vláken na polovinu a umožnění spuštění hry.
Pokud však potřebujete plně využít CPU, je nejlepší zrušit zaškrtnutí políčka „Počet procesorů“ , aby systém Windows mohl v případě potřeby využít všechna jádra a správu ponechat na systémovém plánovači.
Ve Windows 10 a 11, ačkoliv nastavení kompatibility stále existuje, se nedoporučuje jej měnit, s výjimkou velmi specifických diagnostických případů nebo případů kompatibility . Pro většinu uživatelů je nejlepší nechat systém používat všechna dostupná jádra a upravit zátěž pro jednotlivé procesy na základě afinity a priority.
Jak nastavit afinitu CPU ze Správce úloh
Nejrychlejší a nejvizuálnější způsob správy afinity je prostřednictvím samotného Správce úloh. Ve Windows 8, 10 a 11 je pracovní postup velmi podobný, s tím rozdílem, že příslušná karta se nazývá Podrobnosti (ve Windows 7 se karta Procesy používala s možností „Zobrazit procesy od všech uživatelů“).
Chcete-li změnit afinitu aktivního procesu, jednoduše postupujte podle těchto základních kroků, které obecně platí v moderních verzích systému Windows:
- Otevřete Správce úloh pomocí Ctrl + Shift + Esc nebo kliknutím pravým tlačítkem myši na hlavní panel / tlačítko Start a jeho výběrem z nabídky.
- Přejděte na kartu podrobnosti a vyhledejte proces v programu nebo hře, který chceme upravit.
- Klikněte pravým tlačítkem myši na proces a vyberte možnost Nastavit afinitu.
- Otevře se okno se seznamem CPU (CPU 0, CPU 1, CPU 2 atd.), kde můžeme označit nebo zrušit označení jader, která tento proces může použít.
Zrušením výběru některých jader „uzamkneme“ daný proces v jádrech, která zůstanou vybraná. Pokud například máme procesor s osmi logickými vlákny a pro úlohu komprese ponecháme vybraná pouze CPU 0 a CPU 1, bude tato úloha moci běžet pouze na těchto dvou vláknech a ostatní budou volná pro zbývající aplikace.
Ve starších hrách, které běží lépe s menším počtem vláken, nebo v titulech, které padají, když jich narazí na příliš mnoho, můžete zkusit ponechat pro danou hru aktivních pouze 4 nebo 8 logických vláken . Na počítačích s Hyper-Threading nebo SMT je někdy lepší používat pouze fyzická jádra a některým logickým vláknům se vyhnout, i když to silně závisí na konkrétní architektuře.
Mějte na paměti, že změny afinity provedené pomocí Správce úloh jsou dočasné : ztratí se při zavření programu, odhlášení nebo restartování počítače. Pokud chcete automatizovat afinitu pro konkrétní aplikaci, budete potřebovat skript , upravit zástupce nebo použít nástroje třetích stran.
Některé hry navíc používají systémy proti podvádění nebo ochrany, které brání úpravě afinity nebo priority jejich procesů . V těchto případech je normální, že se možnost jeví jako neaktivní nebo že změny nemají žádný účinek.
Nastavení priority procesů ve Windows
Na stejné kartě Podrobnosti ve Správci úloh můžete také ovládat prioritu procesu. Systém nabízí několik kategorií, které ovlivňují množství času CPU přiděleného danému procesu v porovnání s ostatními procesy.
Chcete-li to změnit, musíte:
- Otevřete Správce úloh a přejděte na kartu Podrobnosti.
- Vyhledejte požadovaný proces, klikněte pravým tlačítkem myši a vyberte Nastavit prioritu.
- Vyberte jednu z úrovní: Nízká, Pod normálem, Normální, Nad normálem, Vysoká nebo V reálném čase.
V praxi je rozumné zvýšit maximum na „Nad normálem“ nebo „Vysoké“ pro hru nebo aplikaci, které chceme upřednostnit , a snížit maximum na „Pod normálem“ nebo „Nízké“ pro obslužné procesy, které spotřebovávají hodně CPU, ale nevyžadují okamžitou odezvu (kompresory, kodéry atd.).
Priorita „Reálný čas“ je určena pro velmi specifická prostředí, kde je nutné určité úkoly spustit před vším ostatním (průmyslové procesy, profesionální zvuk v reálném čase atd.). Pokud se použije na hru nebo jakýkoli program na domácím počítači, systém se s velkou pravděpodobností začne chovat chaoticky nebo se zasekne, protože Windows sotva dokáže alokovat prostředky CPU vlastním interním vláknům.
Proto se obecně doporučuje „nezahrávat si s herními prioritami“: pokud se používá bez rozdílu, může to způsobit více problémů, než jich vyřeší . Promyšlené nastavení nahoru nebo dolů může mít pozitivní účinky, ale je nejlepší se vyhnout extrémům.
Zvláštní případy: Windows Defender a MsMpEng.exe spotřebovávají CPU
Velmi typickým příkladem procesu náročného na CPU je Windows Defender , jehož hlavním spustitelným souborem je MsMpEng.exe . Když antivirus provádí úplnou kontrolu nebo se zasekne na určitých souborech, může na poměrně dlouhou dobu zvýšit využití CPU a disku na 80–100 %.
Pokud při pohledu na nástroje jako Správce úloh nebo Průzkumník procesů vidíme, že MsMpEng.exe běží rychle, můžeme problém řešit několika způsoby:
- Koukni na tohle Není nainstalován žádný jiný antivirový, antispywarový ani antimalwarový program.Mít jich několik najednou je špatný nápad: překrývají se, navzájem se detekují a mohou způsobit právě onu nadměrnou spotřebu.
- Konfigurovat výjimky složek en Windows Defender aby neprohledával určité problematické cesty (například vlastní instalační složku nebo jiné s mnoha malými soubory, které nepředstavují riziko).
- V extrémním případě Zakázání programu Windows Defender pomocí skupinových zásad (gpedit.msc) a nahraďte jej jiným spolehlivým antivirem, přičemž si buďte vědomi rizika, že počítač nebudete chráněni.
Další užitečnou technikou je omezit afinitu souboru MsMpEng.exe na určitý počet jader, aby nezatěžoval celý procesor. Opět můžete na kartě Podrobnosti ve Správci úloh nastavit afinitu a omezit ji například pouze na jedno jádro u dvoujádrového procesoru nebo na dvě vlákna u čtyřjádrového procesoru. Tím se proces skenování zpomalí, ale uvolní se prostředky pro zbytek systému.
Obecně lze doporučit, že pro vyvážené zatížení můžete omezit MsMpEng.exe na přibližně 50 % celkového počtu logických vláken . Tím se sníží dopad, aniž by se zcela deaktivovala ochrana v reálném čase.
Pokročilá správa afinity: skripty, zkratky a masky CPU
Ruční úprava těchto nastavení při každém spuštění programu může být zdlouhavá. Proto existuje několik způsobů, jak automatizovat nastavení afinity a priority , aby se aplikovala při každém spuštění konkrétní aplikace.
Vizuálně nejatraktivnější možností je použití nástrojů třetích stran, jako je Process Lasso , které umožňují definovat trvalá pravidla pro afinitu, prioritu, zakázání Hyper-Threadingu pro program a další. Tyto aplikace se spouštějí spolu s Windows a při spuštění automaticky překonfigurují procesy.
Pokud nechceme instalovat nic dalšího, můžeme použít dávkové skripty (.bat) a upravené zkratky . Základní myšlenkou je spustit program pomocí příkazu START s parametry afinity a priority.
Příklad souboru .bat by mohl být:
cd /d "C:\Cesta\k\hře"
START /affinity FF Game.exe
V tomto případě je za parametrem /affinity následována hexadecimální maska, která označuje, která logická vlákna může proces používat (každý bit aktivuje nebo deaktivuje logické CPU). Například masky jako 1, 2, 4, 8, 10, 20 atd. představují různé kombinace jader. Na této úrovni je důležité vědět, kolik logických vláken má procesor a jakou kombinaci chceme.
Další možností je upravit zástupce aplikace . Na kartě Zástupce ve Vlastnostech můžete změnit pole Cíl tak, aby místo přímého odkazování na spustitelný soubor nejprve odkazovalo na cmd.exe s příslušnými parametry, například:
C:\Windows\System32\cmd.exe /C START «Název programu» /high /affinity 2 «C:\Cesta\Program.exe»
V tomto příkladu je program spuštěn s vysokou prioritou a pouze na konkrétním jádře. Po kliknutí na tlačítko Použít vás systém Windows upozorní, že ke změně zástupce jsou potřeba oprávnění správce. Potvrďte změny a od té doby se při každém použití dané ikony bude uplatňovat stejná afinita a priorita.
Hybridní procesory Intel a afinita mezi P-jádry a E-jádry
S příchodem hybridních architektur Intelu (Alder Lake, Raptor Lake a jejich nástupci), kde koexistují výkonová jádra (P-Cores) a efektivní jádra (E-Cores) , získala hra s afinitou další vrstvu složitosti.
V těchto procesorech jsou P-jádra navržena pro náročné úlohy, které vyžadují maximální výkon na vlákno , jako jsou moderní hry nebo aplikace pro tvorbu obsahu, zatímco E-jádra jsou zaměřena na práci na pozadí a zátěž s menší latencí.
Teoreticky plánovač Windows 11 spolu s technologií Intel Thread Director automaticky rozhoduje, která vlákna jdou na P-jádra a která na E-jádra . V praxi může u některých her a aplikací dojít ke snížení výkonu, pokud je významná část jejich práce prováděna na E-jádrech místo na P-jádrech.
V těchto případech se někteří uživatelé rozhodnou vynutit afinitu tak, aby hlavní hry běžely pouze na P-jádrech a E-jádra ponechávaly pro služby, prohlížeče, Discord atd. Aby to však fungovalo dobře, bylo by nutné upravit afinitu i mnoha sekundárních procesů, nejen spustitelného souboru hlavní hry.
To může být proveditelné u procesorů s mnoha E-jádry (například kombinace 8 P-jádr s 8, 16 nebo více E-jádry), kde je dostatek výkonu pro jiné úlohy, ale u procesorů s menším počtem účinných jader je snazší některá z nich přetížit, pokud není zátěž správně rozložena.
Rizika a omezení hraní s afinitou a prioritou
I když zní velmi lákavě „ladit“ alokaci CPU, existuje řada nevýhod a rizik, které je třeba mít na paměti, než se začnete šíleně trápit s afinitou a prioritou.
Pokud přiřadíme intenzivní proces jednomu jádru nebo jen velmi malému počtu jader, můžeme způsobit znatelný pokles efektivity : toto jádro se nasytí, zvýší se latence odezvy aplikace a může se dokonce zdát, že podává horší výkon než dříve, i když zbytek jader je téměř nevyužitý.
Na druhou stranu, pokud špatně rozložíme pracovní zátěž – například soustředěním příliš mnoha procesů na stejná vlákna nebo ponecháním některých jader zbytečně nečinných – systém se může stát méně stabilním . To může vést k pádům, neočekávanému ukončení hry nebo dokonce k zamrznutí systému, které vynutí restart počítače.
Dalším důležitým aspektem je, že nastavení pevné afinity snižuje flexibilitu plánovače systému Windows . Pokud proces může běžet pouze na určitých jádrech, nebude moci využít ostatní nečinná logická vlákna, což může někdy zhoršit výkon při proměnlivém zatížení, kde je ideální scénář, aby systém dynamicky distribuoval zdroje.
Z bezpečnostního hlediska je vzácné, ale možné, aby malware zneužíval nastavení afinity k tomu, aby se pokusil skrýt před určitými bezpečnostními nástroji nebo ztížil svou detekci. Nejedná se o typický vektor útoku, ale je vhodné se vyhnout používání neobvyklých konfigurací v systému nebo bezpečnostních procesech, aniž byste plně pochopili, co děláte.
Jako praktický tip, vynucení hry k obejití logických jader 0 a 1 (které Windows upřednostňuje) na procesoru s malým počtem jader nebo středními taktovacími frekvencemi může způsobit výrazný pokles výkonu nebo zamrznutí . Na moderních procesorech s 8 jádry/16 vlákny nebo více je dopad méně závažný, ale stále stojí za to to pečlivě otestovat.
Pokud je v náročné hře omezeno příliš mnoho vláken, dochází k pádům, zamrzání a vynuceným restartem poměrně často . Pokud tedy chcete experimentovat, je vhodné dělat to postupně, měnit jedno nebo dvě jádra najednou a před pokračováním kontrolovat chování.
V praxi může experimentování s afinitou, prioritou a alokací mezi fyzickými a logickými jádry nabídnout značnou flexibilitu pro jemné doladění výkonu nebo řešení neobvyklých problémů s určitými hrami. Pokud se však k tomu přistupuje promyšleně, změny jsou zdokumentovány a teploty, využití CPU a stabilita systému jsou monitorovány , má uživatel k dispozici výkonný nástroj, jak ze svého hardwaru vytěžit maximum, aniž by se musel spoléhat pouze na automatická rozhodnutí systému Windows.
Vášnivý spisovatel o světě bytů a technologií obecně. Rád sdílím své znalosti prostřednictvím psaní, a to je to, co budu dělat v tomto blogu, ukážu vám všechny nejzajímavější věci o gadgetech, softwaru, hardwaru, technologických trendech a dalších. Mým cílem je pomoci vám orientovat se v digitálním světě jednoduchým a zábavným způsobem.
