Anonim

Większość komputerów z systemem Windows jest teraz zasilana procesorami wielordzeniowymi, a najnowsze wersje systemu Windows generalnie wykonują bardzo dobrą robotę, automatycznie dzieląc całkowitą moc obliczeniową komputera, aby jak najlepiej dostosować działające aplikacje i gry. Ale czasami użytkownik i system Windows mogą mieć różne pomysły, jeśli chodzi o podejmowanie decyzji, jak najlepiej wykorzystać moc procesora komputera, i tam zaawansowani użytkownicy mogą wkroczyć i ręcznie ograniczyć niektóre aplikacje lub procesy do określonych rdzeni procesora, dzięki funkcji o nazwie Affinity Processor . Oto jak to zrobić.
Jeśli chodzi o wersje systemu Windows na poziomie konsumenta, możliwość ręcznego skonfigurowania przez aplikację użycia określonych rdzeni procesora sięga ram czasowych systemu Windows XP / 2000, chociaż kroki różnią się nieznacznie w poszczególnych wersjach systemu Windows. W przypadku kroków i zrzutów ekranu używamy systemu Windows 10, ale czytniki z starszymi wersjami systemu Windows, w szczególności Windows 7 i Windows 8 / 8.1, powinny być w stanie wykonać podstawowe kroki w obliczu niewielkich różnic w stosunku do interfejsu użytkownika systemu Windows.
Należy również zauważyć, że zanim przejdziemy dalej, modyfikowanie koligacji procesora dla określonego procesu lub aplikacji może powodować problemy ze stabilnością i prawdopodobnie obniży wydajność nowoczesnych aplikacji i gier wielowątkowych. Dlatego upewnij się, że najpierw eksperymentujesz z nieistotnymi aplikacjami i danymi oraz zapisujesz wszelkie otwarte prace lub postępy w grze przed modyfikacją omawianych tutaj ustawień, ponieważ możliwe są awarie aplikacji lub systemu.

Po co ograniczać dostęp aplikacji do rdzeni procesora?

Jak wspomniano powyżej, większość użytkowników chce, aby system Windows automatycznie obsługiwał moc obliczeniową komputera, upewniając się, że aplikacje, które mogą wykorzystywać wszystkie rdzenie, mają do nich dostęp. Generalnie skutkuje to lepszą wydajnością, więc podstawowe pytanie brzmi: dlaczego użytkownik kiedykolwiek chciałby ograniczyć lub ograniczyć określoną aplikację wielowątkową do mniejszej niż całkowita liczba fizycznych i logicznych rdzeni dostępnych na komputerze PC.
Istnieją dwie podstawowe odpowiedzi na to pytanie: 1) w celu zapewnienia kompatybilności i wydajności ze starszym oprogramowaniem oraz 2) w celu uruchomienia skrupulatnie pracującego procesora przy jednoczesnym zachowaniu wystarczającej ilości zasobów do jednoczesnego wykonywania innych zadań.
Zaczniemy od pierwszej odpowiedzi: kompatybilności i wydajności. Niektóre aplikacje i gry Windows zostały zakodowane na długo przed pojawieniem się wielowątkowych i wielordzeniowych procesorów na poziomie konsumenckim. W szczególności twórcy starszych gier nigdy nie wyobrażali sobie, że ktoś, kto gra, będzie miał coś więcej niż komputer z systemem Windows, zasilany pojedynczym rdzeniem procesora o wysokiej częstotliwości. Gdy oprogramowanie z tej epoki napotyka nowoczesne procesory pakujące cztery, sześć, osiem, a nawet więcej rdzeni, może to czasem powodować problemy z wydajnością, a nawet niemożność uruchomienia programu.
Wiele aplikacji i gier działa oczywiście dobrze, nawet jeśli są zasilane najnowszymi 8-rdzeniowymi / 16-wątkowymi potwornymi procesorami do komputerów stacjonarnych. Ale jeśli próbujesz zagrać w starszą grę i masz problemy, użycie powinowactwa procesora do ręcznego ograniczenia procesu gry do jednego z wielu rdzeni może być dobrym krokiem do rozwiązania problemu.
Druga odpowiedź jest prawdopodobnie bardziej przydatna dla większej liczby użytkowników systemu Windows i będzie stanowić podstawę naszych instrukcji krok po kroku poniżej. Podczas gdy wiele aplikacji Windows, szczególnie gry, wciąż nie może korzystać z więcej niż jednego lub dwóch rdzeni, aplikacje do tworzenia treści, takie jak kodery wideo i narzędzia do renderowania 3D zostały zoptymalizowane w ostatnich latach, aby móc wykorzystać każdą uncję mocy przetwarzania, która Twój komputer może na nich rzucić. Na ogół chcesz, aby te aplikacje działały tak szybko, jak to możliwe, ale czasami szybkość lub czas ukończenia nie są głównym czynnikiem, a wolisz zachować część mocy obliczeniowej komputera dostępną dla innego zadania, podczas gdy wymagająca aplikacja multimedialna działa w tło. To właśnie przydaje się powinowactwo procesora.

Krok po kroku: nasz przykład

Jedną aplikacją, która może pochłonąć wszystkie rdzenie procesora, które na nią rzucasz, jest koder wideo x264, taki jak RipBot264 (lub HandBrake, lub dowolne z niezliczonych dostępnych narzędzi enkodera x264 i x265). W naszym przykładzie chcemy, aby RipBot264 kodował plik wideo, ale jednocześnie chcemy pracować nad innymi projektami w aplikacjach takich jak Photoshop i Premiere.

Domyślnie aplikacja taka jak RipBot264 wykorzystuje całą dostępną moc przetwarzania.

Gdybyśmy uruchomili nasz kod RipBot264, a następnie uruchomili Photoshopa i Premiere, Windows dołożyłby wszelkich starań, aby ustalić priorytety i dostosować je do potrzeb każdej aplikacji, ale Windows również czasami popełnia błąd, powodując spowolnienia lub tymczasowe zawieszenia w naszych aktywnych aplikacjach. Możemy spróbować tego uniknąć, wykorzystując powinowactwo procesora, aby ograniczyć użycie rdzeni procesora przez RipBot264.
Aby rozpocząć, najpierw upewnij się, że jesteś zalogowany na konto użytkownika systemu Windows z uprawnieniami administratora. Następnie uruchom aplikację, którą chcesz ograniczyć. W naszym przypadku jest to RipBot264.
Następnie uruchom Menedżera zadań Windows, klikając prawym przyciskiem myszy pasek zadań i wybierając Menedżera zadań lub używając kombinacji klawiszy Ctrl-Shift-Escape . Domyślnie Menedżer zadań w najnowszych wersjach systemu Windows uruchamia się w „podstawowym” widoku. Jeśli Menedżer zadań nie wygląda tak jak ten na naszych zrzutach ekranu, kliknij Więcej szczegółów, aby wyświetlić pełny interfejs. Po zakończeniu upewnij się, że jesteś na karcie „Procesy”, a teraz znajdź swoją aplikację lub proces.
Ten ostatni krok można potencjalnie łatwiej powiedzieć niż zrobić. W wielu przypadkach po prostu znajdziesz żądaną aplikację na liście. W innych przypadkach niektóre aplikacje mogą wykorzystywać unikalne procesy oprócz podstawowego procesu aplikacji do niektórych zadań. Kluczem jest znalezienie procesu lub procesów odpowiedzialnych za użycie procesora, które chcesz ograniczyć. Dobrym sposobem na przetestowanie tego jest uruchomienie wymagającej aktywności (w naszym przypadku zacznij kodowanie pliku wideo), a następnie posortuj Menedżera zadań według kolumny Procesor, aby znaleźć procesy wykorzystujące najwyższe poziomy zasobów procesora. Jeśli nazwa procesu (ponownie, w naszym przypadku jest to koder H.264) pasuje do docelowej aplikacji, wszystko jest gotowe.
Po zidentyfikowaniu prawidłowego procesu kliknij go prawym przyciskiem myszy i wybierz Idź do szczegółów . Spowoduje to przejście do karty Szczegóły w Menedżerze zadań i automatyczne wyróżnienie prawidłowego procesu.


Teraz kliknij ponownie proces prawym przyciskiem myszy i wybierz opcję Ustaw koligację .

Pojawi się nowe okno z etykietą „Powinowactwo procesora” wypełnione polami wyboru i numerowaną listą procesorów, których liczba oparta jest na całkowitej liczbie fizycznych i logicznych rdzeni zapakowanych w konkretny procesor. W naszym przykładowym systemie działa procesor Intel Core i7-5960X, który ma osiem rdzeni hiperwątkowych. Dlatego mamy w sumie 16 procesorów wymienionych w naszym oknie Affinity Processor.


Następnie nadszedł czas, aby zdecydować, ile chcesz ograniczyć swoją aplikację. Kliknij pole wyboru obok opcji Wszystkie procesory, aby usunąć zaznaczenie wszystkich pól procesora, a następnie wybierz co najmniej jedno pole procesora do sprawdzenia, z których każdy reprezentuje fizyczny lub logiczny rdzeń. Brak jakichkolwiek wad procesora lub unikalnych scenariuszy podkręcania, na ogół nie ma znaczenia, które rdzenie wybierzesz.


W naszym przykładzie chcemy ograniczyć RipBot264 do czterech rdzeni, pozostawiając dużo miejsca na inne, bardziej wrażliwe na czas zadania. Po wybraniu żądanej liczby rdzeni naciśnij przycisk OK, aby zamknąć okno koligacji procesora. Twoje zmiany zaczną obowiązywać natychmiast, a jeśli aplikacja była już zaangażowana w procesor obciążający procesor, zobaczysz, że użycie procesora gwałtownie spada na wszystkich wybranych rdzeniach oprócz rdzeni.

Po skonfigurowaniu RipBot264 do używania tylko 4 z naszych 16 rdzeni, użycie procesora spada natychmiast na pozostałe rdzenie.

Dzięki tej konfiguracji możemy pozwolić, aby RipBot264 kodował tak szybko, jak to możliwe na tych czterech rdzeniach, ale pozostałe dwanaście rdzeni w naszym systemie może obsługiwać inne aplikacje. Jeśli później zakończymy naszą drugą pracę i chcemy przywrócić pełną wydajność RipBot264, możemy po prostu powtórzyć powyższe kroki, aby wrócić do okna koligacji procesorów, a następnie zaznaczyć pole Wszystkie procesory, aby ponownie przyznać aplikacji dostęp do wszystkich procesorów rdzenie.

Ostrzeżenia

Oprócz wspomnianych wcześniej problemów ze stabilnością, należy wziąć pod uwagę jeszcze jedno duże zastrzeżenie. Wszelkie zmiany dotyczące powinowactwa procesora są resetowane przy każdym ponownym uruchomieniu tego procesu. Oznacza to, że co najmniej musisz powtórzyć te kroki przy każdym ponownym uruchomieniu komputera. Niektóre procesy są jednak jeszcze bardziej kłopotliwe, ponieważ ładują się automatycznie w zależności od instrukcji aplikacji. Na przykład w naszej konfiguracji RipBot264 zmodyfikowany przez nas proces kodera H.264 rozpoczyna się za każdym razem, gdy aplikacja przechodzi do kodowania nowego pliku wideo.
Możesz obejść to ograniczenie, tworząc niestandardowe skrypty, które ustawiają powinowactwo procesora aplikacji za pomocą pliku wsadowego lub skrótu opartego na wierszu poleceń, ale niektóre aplikacje mogą używać unikalnych lub losowych procesów, które utrudniają lub uniemożliwiają takie wysiłki. Dlatego najlepiej jest eksperymentować indywidualnie z każdą aplikacją, którą chcesz ograniczyć, aby znaleźć najlepszy sposób ręcznej konfiguracji koligacji procesora.

Jak ograniczyć aplikacje do określonych rdzeni procesora z koligacją procesorów