Jak wyłączyć rdzenie CPU w Linuksie (Jak ograniczyć zużycie energii przez procesor)
| F.A.Q. • WsparcieJak wyłączyć rdzenie CPU w Linuksie (Jak ograniczyć zużycie energii przez procesor)
Wyłączanie rdzeni CPU może być korzystne, jeśli chcemy zoptymalizować zużycie energii lub rozwiązywać problemy z wydajnością. Na szczęście Linux oferuje metody zarządzania rdzeniami procesora, co pozwala na efektywne kontrolowanie zasobów. Aby wyłączyć rdzenie CPU w Linuksie, możesz skorzystać z kilku metod. W zależności od tego, czy chcesz to zrobić tymczasowo (do następnego restartu) czy na stałe, możesz wybrać odpowiednią metodę.
Tymczasowe wyłączenie rdzeni CPU
Zanim wyłączymy rdzenie CPU, powinniśmy najpierw sprawdzić, które rdzenie są dostępne. Możesz sprawdzić dostępne rdzenie w systemie przy pomocy ls /sys/devices/system/cpu/
$ ls /sys/devices/system/cpu/
cpu0 cpu10 cpu12 cpu14 cpu2 cpu4 cpu6 cpu8
cpu1 cpu11 cpu13 cpu15 cpu3 cpu5 cpu7 cpu9 ...
Zobaczysz listę takich jak cpu0, cpu1, itd. - każdy z nich odpowiada jednemu rdzeniowi procesora.
lub używając polecenie lscpu:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 39 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0,13-15
Off-line CPU(s) list: 1-12
Tymczasowe wyłączenie rdzeni CPU
Użycie narzędzia echo z /sys/devices/system/cpu:
Możesz tymczasowo wyłączyć rdzeń CPU, ustawiając jego status na "offline". Przykład dla wyłączenia rdzenia CPU1:
echo "0" > /sys/devices/system/cpu/cpu1/online
Aby ponownie włączyć rdzeń, ustaw jego status na "online":
echo "1" > /sys/devices/system/cpu/cpu1/online
Alternatywnie, możemy przejść przez zakres rdzeni CPU za pomocą pętli:
for x in /sys/devices/system/cpu/cpu[1-2]*/online; do
echo 0 > "$x"
done
Powyższy skrypt wyłączy rdzenie cpu1
i cpu2
Stałe wyłączenie rdzeni CPU
Dodanie opcji do GRUB-a:
Możesz zmodyfikować ustawienia bootloadera GRUB, aby wyłączyć rdzenie przy każdym starcie systemu. Aby to zrobić:
Edytuj plik konfiguracyjny GRUB, zazwyczaj znajduje się on w /etc/default/grub:
sudo nano /etc/default/grub
Znajdź linię zaczynającą się od GRUB_CMDLINE_LINUX_DEFAULT i dodaj opcję maxcpus=N, gdzie N to liczba rdzeni, które mają być aktywne (np. maxcpus=2, aby używać tylko dwóch rdzeni):
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash maxcpus=2"
Zapisz plik i zaktualizuj konfigurację GRUB:
sudo update-grub
Zrestartuj system, aby zastosować zmiany.
Uwaga:
Wyłączanie rdzeni CPU może prowadzić do spadku wydajności systemu. Stosuj te metody ostrożnie, szczególnie na systemach produkcyjnych
Powiązane strony:
- Jak zmienić wydajność procesora na Linuksie? (Scaling Governor)(Tunning)
- Jak zainstalować Javę na Linuksie by móc korzystać z IPMI KVM Supermicro? Jak otworzyć launch.jnlp? Jak otworzyć jviewer.jnlp? (IPMI Troubleshooting)
- Wymazywanie danych z dysku (dd, hdparm, shred) - Jak usunąć dane z dysku?
- Usuwanie bad sektorów (hdparm) - Jak usunąć bad sektory?
- Automatyczne włączenie serwera po zaniku prądu na przykładzie Supermicro X13SCH-LN4F