Anonim

Většina počítačů se systémem Windows je nyní napájena vícejádrovými procesory a nedávné verze systému Windows obecně obecně vykonávají velmi dobrou práci s automatickým oddělováním celkového výkonu počítače tak, aby co nejlépe vyhovovaly vašim běžícím aplikacím a hrám. Ale někdy může mít uživatel a Windows různé nápady, pokud jde o rozhodování o tom, jak co nejlépe využít výkon CPU počítače, a to je místo, kde pokročilí uživatelé mohou vstoupit a ručně omezit určité aplikace nebo procesy na konkrétní CPU jádra, díky funkci nazývá se afinita procesoru . Zde je návod, jak to udělat.
Pokud jde o spotřebitelské verze systému Windows, možnost pro uživatele ručně nakonfigurovat použití konkrétních jader CPU v aplikaci se datuje do časového rámce systému Windows XP / 2000, i když kroky se v každé verzi systému Windows mírně liší. Pro kroky a screenshoty, které používáme Windows 10, ale čtenáři, kteří používají starší verze Windows, zejména Windows 7 a Windows 8 / 8.1, by měli být schopni sledovat základní kroky z důvodu nepatrných rozdílů od uživatelského rozhraní Windows.
Je také důležité si uvědomit, než začneme, že změna afinity procesorů pro konkrétní proces nebo aplikaci může způsobit problémy se stabilitou a pravděpodobně sníží výkon moderních aplikací a her s více vlákny. Proto nezapomeňte nejprve experimentovat s nepodstatnými aplikacemi a daty a před změnou nastavení zde diskutovaných uložte veškerý otevřený postup práce nebo hry, protože je možné zhroucení aplikace nebo systému.

Proč omezit přístup aplikace k jádru CPU?

Jak bylo uvedeno výše, většina uživatelů bude chtít, aby systém Windows automaticky zpracoval výpočetní výkon počítače a zajistil přístup k aplikacím, které mohou využívat všechna jádra. To obecně vede k lepšímu výkonu, takže primární otázkou je, proč by uživatel někdy chtěl omezit nebo omezit určitou vícevláknovou aplikaci na méně než celkové množství fyzických a logických jader, které má počítač k dispozici.
Na tuto otázku existují dvě základní odpovědi: 1) zajistit kompatibilitu a výkon se starším softwarem, a 2) spustit jinak silně podprocesový procesorový prase a přitom vyhradit dostatek prostředků pro současné provádění dalších úkolů.
Začneme první odpovědí: kompatibilita a výkon. Některé aplikace a hry pro systém Windows byly kódovány dlouho předtím, než byly realitou vícejádrové a vícejádrové procesory na úrovni zákazníka. Zejména tvůrci starších her si možná nikdy neuvědomili, že někdo, kdo si hru zahraje, bude mít víc než Windows PC poháněné jediným vysokofrekvenčním jádrem CPU. Když se software této doby setká s moderními procesory, které zabalí čtyři, šest, osm nebo více jader, může to někdy vést k problémům s výkonem nebo dokonce k neschopnosti spustit program vůbec.
Mnoho aplikací a her stále běží dobře, samozřejmě, i když jsou poháněny nejnovějšími 8jádrovými / 16-vláknovými monster stolními CPU. Ale pokud se pokoušíte hrát starší hru a máte problémy, může být dobrým krokem k vyřešení problému spřízněnost procesoru k ručnímu omezení procesu hry pouze na jedno z mnoha jader.
Druhá odpověď je pravděpodobně užitečnější pro více uživatelů Windows a bude tvořit základ našich podrobných pokynů níže. Přestože mnoho aplikací pro systém Windows, zejména hry, stále nemohou využívat více než jednoho nebo dvou jader, aplikace pro vytváření obsahu, jako jsou kodéry videa a 3D vykreslovací nástroje, byly v posledních letech optimalizovány, aby mohly využívat každou unci procesního výkonu, který váš počítač na ně může házet. Obecně byste chtěli, aby tyto aplikace šly co nejrychleji, ale někdy rychlost a čas dokončení nejsou primárním faktorem, a raději byste měli mít určitou část výpočetního výkonu počítače k ​​dispozici pro jiný úkol, zatímco vaše náročná mediální aplikace běží v Pozadí. To je místo, kde se afinita procesorů skutečně hodí.

Krok za krokem: Náš příklad

Jednou z aplikací, která dokáže pojídat všechna jádra CPU, která na ni hodíte, je video kodér x264, jako je RipBot264 (nebo HandBrake, nebo kterýkoli z nesčetných dostupných nástrojů kodéru x264 a x265). V našem příkladu chceme, aby RipBot264 kódoval video soubor, ale také chceme pracovat na dalších projektech v aplikacích jako Photoshop a Premiere současně.

Ve výchozím nastavení bude aplikace jako RipBot264 využívat veškerý dostupný výpočetní výkon.

Pokud bychom spustili naše kódování RipBot264 a poté spustili Photoshop a Premiere, Windows by udělala vše, co bylo v jejich silách, aby stanovila priority a vyhovovala potřebám každé aplikace, ale Windows také občas udělá chybu, což má za následek zpomalení nebo dočasné zamrznutí v našich aktivních aplikacích. Můžeme se tomu pokusit vyhnout pomocí afinity procesorů k omezení využití jader jádra RipBot264.
Nejprve se ujistěte, že jste přihlášeni k uživatelskému účtu Windows s oprávněními správce. Pak pokračujte a spusťte aplikaci, kterou chcete omezit. V našem případě to je RipBot264.
Poté spusťte Správce úloh systému Windows, buď klepnutím pravým tlačítkem myši na hlavním panelu a výběrem Správce úloh, nebo pomocí kombinace klávesových zkratek Ctrl-Shift-Escape . Ve výchozím nastavení se Správce úloh v posledních verzích systému Windows spustí v „základním“ zobrazení. Pokud váš Správce úloh nevypadá jako ten v našich screenshotech, kliknutím na Další podrobnosti zobrazíte úplné rozhraní. Po dokončení se ujistěte, že jste na kartě Procesy, a nyní najděte svou aplikaci nebo proces.
Tento poslední krok je snadněji řečeno než provedeno. V mnoha případech jednoduše najdete v seznamu požadovanou aplikaci. V jiných případech mohou některé aplikace používat určité procesy kromě primárního procesu aplikace pro určité úkoly. Klíčem je najít proces nebo procesy, které jsou zodpovědné za využití CPU, které chcete omezit. Dobrým způsobem, jak to otestovat, je vyvolat náročnou činnost (v našem případě začít kódovat videosoubor) a potom třídit Správce úloh podle sloupce CPU a hledat procesy, které používají nejvyšší úrovně prostředků CPU. Pokud se název procesu (opět v našem případě jedná o kodér H.264) shoduje s vaší cílovou aplikací, jste všichni nastaveni.
Pokud je identifikován správný proces, klepněte na něj pravým tlačítkem a vyberte Přejít na Podrobnosti . Tím se dostanete na kartu Podrobnosti Správce úloh a automaticky se zvýrazní správný proces.


Nyní klikněte pravým tlačítkem na proces a vyberte Nastavit spřízněnost .

Objeví se nové okno označené „Procesorová afinita“, vyplněné zaškrtávacími políčky a číslovaným seznamem procesorů, jejichž počet je založen na celkovém počtu fyzických a logických jader zabalených ve vašem konkrétním procesoru. Náš příkladový systém používá procesor Intel Core i7-5960X, který má osm hyperthreaded jader. Máme tedy celkem 16 procesorů uvedených v našem okně Affinity Processor.


Dále je čas rozhodnout se, jak moc chcete svou aplikaci omezit. Klepnutím na zaškrtávací políčko u položky Všechny procesory zrušte výběr všech políček CPU a poté zaškrtněte alespoň jedno políčko CPU, přičemž každá z nich představuje fyzické nebo logické jádro. Neexistují-li žádné vady procesoru nebo jedinečné scénáře přetaktování, obvykle nezáleží na tom, která jádra vyberete.


V našem příkladu chceme omezit RipBot264 na čtyři jádra a ponechat dostatek prostoru pro naše další časově citlivější úkoly. Jakmile vyberete požadovaný počet jader, stisknutím tlačítka OK zavřete okno Procesorové spřažení. Vaše změny se projeví okamžitě a pokud již byla aplikace zapojena do úlohy náročné na procesory, zobrazí se její využití na všech procesorech kromě vybraných jader.

Jakmile nakonfigurujeme RipBot264 tak, aby používal pouze 4 z našich 16 jader, využití CPU okamžitě klesá na zbývajících jádrech.

S tímto nastavením můžeme nechat kódování RipBot264 co nejrychleji na těchto čtyřech jádrech, ale zbývajících dvanáct jader v našem systému může zpracovat jiné aplikace. Pokud později dokončíme naši další práci a chceme obnovit plný výkon na RipBot264, můžeme jednoduše zopakovat výše uvedené kroky a vrátit se zpět do okna Affinity pro procesory a poté zaškrtnutím políčka Všechny procesory znovu udělit aplikaci přístup ke všem našim procesorům jádra.

Upozornění

Kromě výše zmíněných problémů se stabilitou je třeba zvážit ještě jednu velkou výzvu. Všechny změny, které provedete v afinitě procesorů, se resetují při každém restartování tohoto procesu. To znamená, že tyto kroky budete muset opakovat při každém restartování počítače. Některé procesy jsou však ještě obtížnější, protože se automaticky načítají v závislosti na pokynech aplikace. Například v našem nastavení RipBot264 začíná proces kodéru H.264, který jsme upravili, pokaždé, když aplikace přejde na kódování nového videosouboru.
Možná budete moci toto omezení obejít vytvořením vlastních skriptů, které nastaví spřažení procesorů vaší aplikace pomocí dávkového souboru nebo zástupce na příkazovém řádku, ale některé aplikace mohou používat jedinečné nebo náhodné procesy, které takové úsilí ztěžují nebo znemožňují. Je proto nejlepší experimentovat jednotlivě s každou aplikací, kterou chcete omezit, a najít nejlepší způsob, jak ručně nakonfigurovat spřažení procesorů.

Jak omezit aplikace na konkrétní procesorová jádra s afinitou k procesoru