Chciałbym ustawić regulator skalowania częstotliwości procesora dla wszystkich rdzeni jednocześnie, zamiast robić to indywidualnie dla każdego rdzenia. Czy jest na to sposób?
(Wiem, że echo gubernatora byłoby łatwe /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
, ale nie szukam niestandardowego rozwiązania).
Odpowiedzi:
Nadal jestem linobem noob, ale nie sądzisz, że cpufrequtils pozwala ci to zrobić za pomocą (nie jest zawarte w systemie Ubuntu, ale jest w repozytorium)
-r
Flaga jest używany do ustawiania zmiany dla wszystkich ( „wszyscy związany ze sprzętem”) rdzeniźródło
cpufreq-set
w rzeczywistości brakuje mu ostatecznie prostej, ale potrzebnej funkcjonalności. Wiele osób, jak pokazują te liczniki głosów, po prostu nie zdaje sobie z tego sprawy, ponieważ jego opis wprowadza w błąd.Często googlowałem i myślę, że to po prostu niemożliwe, dlatego dodałem do mojej strony następującą linijkę
.bashrc
:Teraz mogę uruchomić coś podobnego,
setgov ondemand
a wszystkie rdzenie zostaną przełączone na gubernatora na żądanie .źródło
najkrótsza komenda zmiany gubernatora wszystkich rdzeni jest następująca:
Możesz dodać go do .bashrc jak wspomniano w htorque, będziesz musiał uruchomić go jako root
sudo setgov performance
:źródło
Równie dobrze możemy dodać uzupełnianie kodu bash, gdy już nad tym pracujemy:
źródło
Sposób, w jaki ustawiłem tę opcję, ponieważ gubernator domyślnie powraca do powerave po około 30 sekundach od wersji Ubuntu 16.04 lub nowszej (korzystam z Ubuntu Mate);
Wpisz ten (jeden wiersz) kod (dziękuję, dzięki uprzejmości switch87 w poprzedniej odpowiedzi)
do pliku w katalogu
Mój jest linią powyżej „wyjścia 0” i bez komentarza, pod komentarzem.
„rc.local” dla tych, którzy nie wiedzą, uruchamia polecenie jako sudo. Wydaje się, że każde polecenie zmiany gubernatora musi być wykonywane jako sudo.
Pozwala gubernatorowi zresetować do powerave i uruchamia kod jako sudo po 60 sekundach, aby przywrócić go do wydajności.
Zmień „60” (w kopiowanym kodzie) na dowolny czas (w sekundach. 60 = 60 sekund = 1 minuta), musisz opóźnić polecenie i „wydajność” (w części poleceń) na jaki gubernator ma to zrobić zmień na.
Z moich godzin poszukiwań nie znalazłem bardziej trwałego rozwiązania tego problemu. Doszedłem do wniosku, że to kilka minut na oszczędzanie energii, jeśli jest to najlepsza poprawka, jaką znalazłem, prawda? Dobrze.
Nie jest to najlepsza poprawka, ale sprawia, że jest trochę trwała po tym, jak robi małą zmianę na powerave. Jeśli chcesz uruchomić się od razu i wskoczyć do gry lub czegoś innego, musisz poczekać minutę na kod, który właśnie wstawiłeś, aby przełączyć go z oszczędzania energii lub zmniejszyć na nim czas (w zależności od tego, ile czasu to zajmie wszystko, aby uruchomić, aby poprawnie przełączyło się ponownie na wydajność).
I, jak zawsze, aby powrócić do ustawień domyślnych (widziałem pewne problemy z przegrzewaniem się komputerów osobistych i dlatego mogliby ustawić go na PowerSave w pierwszej kolejności), po prostu usuń kod z pliku rc.local i uruchom go ponownie lub przełącz go z powrotem ręcznie za pomocą przełącznika lub ikony wskaźnika procesora;
w terminalu i / lub uruchom ponownie.
źródło
Możesz to zrobić dla wszystkich rdzeni jednocześnie, uruchamiając
źródło
Na podstawie odpowiedzi switch87 stworzyłem prosty skrypt
cpufreq-set-all
, który pozwoli robić innecpufreq-set
rzeczy ze wszystkimi procesorami:Teraz można go wywołać (po
chmod +x
, oczywiście) w następujący sposób:lub
źródło