Czy można wyłączyć procesor (a nie rdzeń)?

10

Czy można wyłączyć procesor, a nie rdzeń? Chcę zrobić test, aby sprawdzić, czy wydajność może mieć dużą różnicę, czy nie.

Używam Ubuntu 10.10.

LeoYuan 袁力皓
źródło

Odpowiedzi:

10

Poza tym w BIOSie grub ma opcję o nazwie maxcpus.

Możesz edytować tę opcję, wybierając opcję rozruchu grub, dodając maxcpus=1do parametrów. Losowe zdjęcie gruba:

wprowadź opis zdjęcia tutaj

Wybierz „e” i dojdziesz do wiersza poleceń, w którym możesz dodać opcje.

Możesz także utworzyć opcję trwałego rozruchu w grub, tworząc kopię bieżącej opcji rozruchu i dodając maxcpus=1do parametrów rozruchowych. Możesz nazwać to „Ubuntu, jądro 2.5.12-9-386 (1 procesor)” i mieć go wśród innych opcji uruchamiania, takich jak pokazy obrazków.

Możesz sprawdzić działanie na 1 jednostce centralnej, wydając:

cat /proc/cpuinfo | grep processor powinno to pokazać coś takiego:

procesor: 0
procesor: 1

A druga linia powinna zniknąć po uruchomieniu z 1 procesorem.

Rinzwind
źródło
1
to pytanie stanowiłoby również bardzo podły praktyczny żart! : D
Alvar
Co się stanie, jeśli ustawisz maxcpus = 0? : P
crazy2be
@Rinzwind Zrobiłem dokładnie to, co powiedziałeś, ale wynik wydaje się dziwny, mam 12 informacji o procesorach przed dodaniem „maxcpus = 1” do parametrów podczas grepowania, ale dostałem tylko 1 informację o procesorze po modyfikacji, wydaje się, że jest tylko jeden rdzeń w wszystkie 12 rdzeni jest aktywowane. Uwaga: Mój komputer ma dwa sześciordzeniowe procesory.
LeoYuan
@ crazy2be zgadywanie: 1. procesor nazywa się 0, więc używasz go? : D
Rinzwind
@ LeoYuan88 袁力皓 czy możesz go edytować dane wyjściowe cat / proc / cpuinfo | procesor grep przed i po uruchomieniu z maxcpus = 1?
Rinzwind
7

Możesz dynamicznie wyłączać procesory /sys/devices/system/cpu/cpuN/online, np. Aby wyłączyć CPU 1, użyj:

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

i aby ponownie włączyć, użyj:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online
Colin Ian King
źródło
To wydaje się wyłączać lcore, a nie procesor. Mam jeden z tych katalogów dla każdego logicznego rdzenia w moim systemie.
sudo
1

Zawsze możesz odłączyć procesor od gniazda. To brutalna siła, ale masz gwarancję, że dostaniesz test, który chcesz, i nie musisz się martwić, czy przełącznik jądra / BIOS / cokolwiek naprawdę robi to, na co masz nadzieję.

Moja firma ma duże instalacje farm serwerów w różnych lokalizacjach na całym świecie. W naszym laboratorium czasami usuwamy procesory z gniazd w celu przeprowadzenia takiego testu.

Istnieje ciekawa odmiana tego testu, którą można wykonać w systemach NUMA z wieloma procesorami . Na tego typu płytach głównych można usunąć wszystkie moduły pamięci DIMM sterowane przez jeden fizyczny procesor. System nadal będzie działał poprawnie, a następnie możesz uruchomić testy z aplikacją przypiętą do różnych rdzeni, co pozwoli ci zmierzyć wpływ pamięci „lokalnej” lub „zdalnej”.

David Gardner
źródło
Przepraszam, wciąż nie wiem, jak odłączyć procesor od gniazda, czy możesz mi pokazać, jak wykonać to zadanie?
LeoYuan
0

Czy chcesz zobaczyć wydajność aplikacji wielowątkowej wraz z liczbą rdzeni? W takim przypadku możesz użyć narzędzia zestawu zadań. Chyba masz maszynę NUMA. Możesz zainstalować narzędzie numactl i korzystając z niego możesz znaleźć, które rdzenie odpowiadają procesorowi. Na przykład twoja maszyna ma dwa czterordzeniowe CPUS (chipy). Za pomocą narzędzia do zadań można tworzyć rdzenie jednego procesora jako zestaw i przypisywać je do aplikacji. Wtedy twoja aplikacja używa tylko jednego procesora / układu (cztery rdzenie). Daj mi znać, jeśli potrzebujesz więcej informacji.

samarasa
źródło