Hur man begränsar appar till specifika CPU-kärnor med processoraffinitet

De flesta Windows-datorer drivs nu av flerkärniga processorer, och de senaste versionerna av Windows gör i allmänhet ett mycket bra jobb med att automatiskt dela upp din PC:s totala processorkraft för att på bästa sätt passa dina appar och spel som körs. Men ibland kan användaren och Windows ha olika idéer när det gäller att fatta beslut om hur man bäst använder en PCs CPU-kraft, och det är där avancerade användare kan gå in och manuellt begränsa vissa appar eller processer till specifika CPU-kärnor, tack vare en funktion kallad Processoraffinitet. Så här gör du.
När det gäller versioner av Windows på konsumentnivå går möjligheten för en användare att manuellt konfigurera en app användning av specifika CPU-kärnor tillbaka till tidsramen för Windows XP/2000, även om stegen skiljer sig något i varje version av Windows. För stegen och skärmdumparna i den här artikeln använder vi Windows 10, men läsare som kör äldre versioner av Windows, särskilt Windows 7 och Windows 8/8.1, bör kunna följa de grundläggande stegen med tanke på små skillnader i Windows UI .
Det är också viktigt att notera innan vi fortsätter att modifiering av processoraffinitet för en viss process eller app kan orsaka stabilitetsproblem, och det kommer sannolikt att försämra prestandan hos moderna flertrådiga appar och spel. Se därför till att du experimenterar med icke-avgörande appar och data först, och se till att spara alla öppna arbeten eller spelförlopp innan du ändrar några inställningar som diskuteras här, eftersom program- eller systemkraschar är möjliga.

Hur man begränsar appar till specifika CPU-kärnor med processoraffinitet

Varför begränsa en apps åtkomst till CPU-kärnor?

Som nämnts ovan kommer de flesta användare att vilja att Windows automatiskt hanterar PC:ns processorkraft, och ser till att appar som kan använda alla kärnor får tillgång till dem. Detta resulterar i allmänhet i bättre prestanda, så den primära frågan är Varför en användare skulle någonsin vilja begränsa eller begränsa en viss flertrådad app till mindre än den totala mängden fysiska och logiska kärnor som en dator har tillgänglig.
Det finns två grundläggande svar på denna fråga: 1) för att säkerställa kompatibilitet och prestanda med äldre mjukvara, och 2) att köra en annars kraftigt gängad processorhog samtidigt som du reserverar tillräckligt med resurser för att samtidigt utföra andra uppgifter.
Vi börjar med det första svaret: kompatibilitet och prestanda. Vissa Windows-appar och -spel kodades långt innan flertrådiga och flerkärniga processorer på konsumentnivå var verklighet. Skaparna av i synnerhet äldre spel kanske aldrig hade föreställt sig att någon som spelar spelet skulle ha något mer än en Windows-dator som drivs av en enda högfrekvent CPU-kärna. När programvara från den här eran stöter på moderna processorer som packar fyra, sex, åtta eller till och med fler kärnor, kan det ibland resultera i prestandaproblem, eller till och med oförmågan att starta programmet alls.
Många appar och spel fungerar fortfarande bra, naturligtvis, även när de drivs av den senaste 8-kärniga/16-trådarna monster stationära processorer. Men om du försöker spela ett äldre spel och har problem kan det vara ett bra felsökningssteg att prova att använda processoraffinitet för att manuellt begränsa spelets process till bara en av dina många kärnor.
Det andra svaret är troligen mer användbart för fler Windows-användare, och det kommer att ligga till grund för våra steg-för-steg-instruktioner nedan. Medan många Windows-appar, speciellt spel, fortfarande inte kan dra nytta av mer än en eller två kärnor, appar för att skapa innehåll som videokodare och 3D-renderingsverktyg har optimerats under de senaste åren för att kunna använda varje uns processorkraft som din PC kan kasta på dem. Du vill vanligtvis att dessa appar ska gå så fort som möjligt, men ibland är inte hastighet eller färdigställandetid den primära faktorn, och du vill hellre ha en del av din dators processorkraft tillgänglig för en annan uppgift medan din krävande medieapp körs i bakgrund. Det är här processoraffinitet verkligen kommer väl till pass.

Steg för steg: Vårt exempel

En app som kan äta upp alla CPU-kärnor du kastar på den är en x264-videokodare som RipBot264 (eller Handbroms, eller något av de otaliga x264- och x265-kodarverktygen som finns tillgängliga). För vårt exempel vill vi att RipBot264 ska koda en videofil, men vi vill också arbeta med andra projekt i appar som Photoshop och Premiere samtidigt.

Windows Aktivitetshanterare alla processorer

Som standard kommer en app som RipBot264 att använda all tillgänglig processorkraft.

Om vi ​​startade vår RipBot264-kodning och sedan lanserade Photoshop och Premiere, skulle Windows göra sitt bästa för att prioritera och tillgodose varje apps behov, men Windows kommer också ibland att göra ett misstag, vilket resulterar i långsammare eller tillfälliga frysningar i våra aktiva appar. Vi kan försöka undvika detta genom att använda processoraffinitet för att begränsa RipBot264:s användning av våra CPU-kärnor.
För att komma igång, se först till att du är inloggad på ett Windows-användarkonto med administratörsbehörighet. Gå sedan vidare och starta appen du vill begränsa. I vårt fall är det RipBot264.
Starta sedan Windows Task Manager, antingen genom att högerklicka på aktivitetsfältet och välja Aktivitetshanteraren eller genom att använda tangentkombinationen Ctrl-Skift-Escape. Som standard startar Aktivitetshanteraren i de senaste versionerna av Windows i en ”grundläggande” vy. Om din Task Manager inte ser ut som den i våra skärmdumpar, klicka Fler detaljer för att avslöja hela gränssnittet. När det är gjort, se till att du är på fliken ”Processer” och hittar nu din app eller process.
Detta sista steg är potentiellt lättare sagt än gjort. I många fall hittar du helt enkelt din önskade app i listan. I andra fall kan vissa appar använda unika processer förutom den primära ansökningsprocessen för vissa uppgifter. Nyckeln är att hitta den eller de processer som är ansvariga för den CPU-användning du vill begränsa. Ett bra sätt att testa detta är att starta den krävande aktiviteten (i vårt fall, börja koda en videofil) och sedan sortera Task Manager efter CPU-kolumnen för att hitta de processer som använder de högsta nivåerna av CPU-resurser. Om processnamnet (igen, i vårt fall är det en H.264-kodarprocess) stämmer överens med din målapp, är du redo.
Med rätt process identifierad, högerklicka på den och välj Gå till Detaljer. Detta tar dig till fliken Detaljer i Aktivitetshanteraren och markerar automatiskt rätt process.
uppgiftshanteraren gå till detaljer
Högerklicka nu igen på processen och välj Ställ in Affinitet.
uppgiftshanteraren ställer in affinitet
Ett nytt fönster märkt ”Processor Affinity” kommer att dyka upp fyllt med kryssrutor och en numrerad lista över processorer, vars antal är baserat på det totala antalet fysiska och logiska kärnor packade i din specifika processor. Vårt exempelsystem kör en Intel Core i7-5960X, som har åtta hypertrådade kärnor. Vi har därför totalt 16 processorer listade i vårt Processor Affinity-fönster.
uppgiftshanterarens processoraffinitet
Därefter är det dags att bestämma hur mycket du vill begränsa din app. Klicka på kryssrutan bredvid Alla processorer för att avmarkera alla CPU-rutor och sedan välja minst en CPU-ruta att markera, där var och en representerar en fysisk eller logisk kärna. Utan några CPU-defekter eller unika överklockningsscenarier spelar det i allmänhet ingen roll vilka kärnor du väljer.
processoraffinitet begränsad
I vårt exempel vill vi begränsa RipBot264 till fyra kärnor, vilket ger gott om utrymme för våra andra mer tidskänsliga uppgifter. När du har valt önskat antal kärnor, tryck OK för att stänga fönstret Processor Affinity. Dina ändringar kommer att träda i kraft omedelbart och om appen redan var engagerad i en CPU-tung uppgift, kommer du att se dess processoranvändning sjunka på alla utom de kärnor du valt.

uppgiftshanterarens processoraffinitet begränsad

När vi konfigurerat RipBot264 att använda endast 4 av våra 16 kärnor, sjunker CPU-användningen omedelbart på de återstående kärnorna.

Med den här inställningen kan vi låta RipBot264 koda så snabbt som möjligt på dessa fyra kärnor, men de återstående tolv kärnorna i vårt system är fria att hantera andra appar. Om vi ​​senare avslutar vårt andra arbete och vill återställa full prestanda till RipBot264, kan vi helt enkelt upprepa stegen ovan för att gå tillbaka till Processor Affinity-fönstret och sedan kontrollera Alla processorer box för att återigen ge appen åtkomst till alla våra CPU-kärnor.

Varningar

Utöver de stabilitetsproblem som nämnts tidigare, finns det en annan stor varning du måste tänka på. Alla ändringar du gör i processoraffiniteten återställs när den processen startas om. Det betyder att du åtminstone måste upprepa dessa steg varje gång du startar om din dator. Vissa processer är dock ännu mer besvärliga, eftersom de laddas om automatiskt beroende på appens instruktioner. I vår RipBot264-installation, till exempel, startar H.264-kodarprocessen som vi modifierade om varje gång appen går vidare till att koda en ny videofil.
Du kanske kan kringgå denna begränsning genom att skapa anpassade skript som ställer in din apps processoraffinitet via en kommandoradsbaserad batchfil eller genväg, men vissa appar kan använda unika eller slumpmässiga processer som gör sådana ansträngningar svåra eller omöjliga. Det är därför bäst att experimentera individuellt med varje app du vill begränsa för att hitta det bästa sättet att manuellt konfigurera processoraffinitet.

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *