Wyłącz demona skalowania procesora „ondemand”


13

Mam serwer, który od aktualizacji do 10.04 działa teraz na demonie skalowania procesora „ondemand”. Dlaczego miałby to automatycznie instalować? Nie chcę, aby mój serwer oszczędzał energię kosztem wydajności.


5
Mylisz gubernatora wymagającego władzy z jednym gubernatorem władzy.
Leon Nardella,

3
Uzgodniony z Leonem. Ondemand przyspiesza, jeśli jest coś do zrobienia, i zwalnia, jeśli jest na biegu jałowym. Nie ogranicza to zdolności procesora do zmiany prędkości, ale raczej z niego korzysta.
maco


Zwiększa czasy odpowiedzi na przeważnie bezczynnym serwerze.
Student na uniwersytecie

Odpowiedzi:


32

Zamiast wyłączać wykonywanie /etc/init.d/ondemandskryptu (zgodnie z sugestią George'a) należy użyć tego polecenia

sudo update-rc.d ondemand disable

Aby system init nie uruchomił skryptu, jest to znany sposób na zrobienie tego! Wyłączenie uprawnienia exec ( sudo chmod -x /etc/init.d/ondemand) może zostać zastąpione, jeśli pakiet zostanie zaktualizowany.


Jeśli to zrobię: sudo update-rc.d other_governor enable, czy ustawi na stałe pożądanego gubernatora?
userDepth

5

Skalowanie częstotliwości nie jest statyczne. Gdy tylko trzeba będzie pracować, procesor przeskakuje do akcji, stany P zwiększają się i wszystko leci.

Jest włączony, ponieważ jest powszechnie postrzegany jako dobra rzecz. Oszczędza energię (dobre dla portfela i środowiska). Utrzymuje ciepło ( tak ważne w serwerowni). I jest całkiem niezauważalny.

Ponadto w przypadku nowoczesnych układów Intela, jeśli masz skalowanie, możesz użyć „turbo boost”, w którym jeden rdzeń będzie działał przez pewien czas z prędkością wyższą niż standardowa. Jest to bardzo przydatne w przypadku skoków pracy jednowątkowej. Bez włączonego skalowania nie otrzymujesz tego.


Ile czasu zajmuje skalowanie na P4 Xeon na żądanie?
Student on University

Znalazłem tę starą odpowiedź i chociaż zgadzam się z Oli, istnieją konkretne przypadki użytkowników, w których chciałbyś wyłączyć skalowanie procesora - na przykład nagrywanie audio. Jeśli nie masz konkretnej potrzeby, pozostaw ją na żądanie
Panther

Czy przypadkiem istnieje sposób, aby dowiedzieć się, który proces stale zmienia wartości min / maks skalowania częstotliwości? Zawsze się zmienia i nie wiem dlaczego. patrz askubuntu.com/questions/800797/how-to-enable-turbo-boost
Sebastien Lorber

2

Możesz zainstalować narzędzie debian rcconf :

sudo apt-get install rcconf

następnie stamtąd wyłącz usługę „ondemand”.


Nie mogę znaleźć żadnego ostrzeżenia o wycofaniu dotyczącego narzędzia rcconf: brakuje Ci punktu i podałeś całkowicie niepoprawny adres URL. Nie miałem na myśli sposobu, w jaki Arch konfiguruje skrypty rc, ale raczej narzędzie debian, które wygląda na żywe i dobrze.
Manuel,

Dziękujemy za wskazanie tego i dostarczenie pomocnego linku! (Usunąłem swój początkowy i niepoprawny komentarz)
szalony o natty

Edytowałem również oryginalną odpowiedź!
Manuel

2

Ustaw wszystkie procesory na regulator wydajności:

for GOVERNOR in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; \
do \
    echo "performance" | sudo tee $GOVERNOR; \
done

Wszystkie obsługiwane gubernatory jądra Linux:

  • wydajność Uruchom procesor na maksymalnej częstotliwości.
  • powersave Uruchom procesor na minimalnej częstotliwości.
  • przestrzeń użytkownika Uruchom CPU na częstotliwościach określonych przez użytkownika.
  • ondemand Dynamicznie skaluje częstotliwość zgodnie z bieżącym obciążeniem. Przeskakuje na najwyższą częstotliwość, a następnie ewentualnie wycofuje się wraz ze wzrostem czasu bezczynności.
  • konserwatywny Dynamicznie skaluje częstotliwość zgodnie z bieżącym obciążeniem. Skaluje częstotliwość bardziej stopniowo niż na żądanie.
  • schedulutil Wybór częstotliwości procesora zależny od harmonogramu

Zobacz https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt


2
Uwaga: sudo echo > ...nie rób tego, czego oczekujesz: askubuntu.com/q/230476/158442
mur

1

Aby wszystkie procesory działały z maksymalną wydajnością w sposób ciągły na komputerze stacjonarnym lub serwerze Ubuntu, uruchom:

sudo chmod -x /etc/init.d/ondemand

w wierszu poleceń i wprowadź hasło. Powoduje to wyłączenie skryptu powłoki, który powoduje, że wszystkie procesory działają z prędkością „OnDemand”, co powoduje, że są one domyślnie ustawione na pełną prędkość (wydajność). Aby to zadziałało, musisz ponownie uruchomić komputer.

Testowałem to tylko w Ubuntu Jaunty 9.04, ale powinno działać i nie powodować żadnych problemów w żadnej wersji Ubuntu.

Myślę, że domyślne ustawienia Ubuntu są z tego powodu dziwne. Moim zdaniem komputer lub serwer powinien działać z pełną prędkością.

Pozdrawiam, George


1
Nie sądzę, że to dziwne. Chociaż z pewnością mobilność jest najbardziej krytycznym scenariuszem oszczędzania energii, zmniejszenie zużycia energii oznacza również mniej hałasu wentylatora w scenariuszu stacjonarnym i mniej ciepła do radzenia sobie w serwerowni. Ciągła praca z maksymalną prędkością jest trochę marnotrawstwem, jest naprawdę niezbędna tylko w rzadkich przypadkach, ondemandgdy popełniają błąd.
bobince

@ Bobin - Prawdopodobnie masz rację, ale zauważyłem, że w przypadku komputera stacjonarnego system OnDemand reaguje powolnie w porównaniu z wydajnością i myślę, że komputer może nadal prawidłowo spać z powyższą zmianą. Powinna być opcją w System / Administracja lub System / Preferencje.
George Gesslein II,

Tak, jedynym sensownym miejscem są laptopy, w których czas ładowania jest skrócony, a czas pracy baterii wydłużony przez skalowanie procesora.
LassePoulsen

ratowanie środowiska, ktoś ??
orzechowy o natty

1

W niektórych systemach gubernator „na żądanie” jest niestety zepsuty.

Tak jest w przypadku „Intel (R) Core (TM) 2 Quad CPU Q9300 @ 2.50GHz” i jądra 2.6.32-42.

Jądro uważa, że ​​może ustawić częstotliwość indywidualnie dla każdego procesora, podczas gdy sprzęt faktycznie pozwala tylko ustawić częstotliwość dla grup kilku procesorów (np. CPU 0 i 1 razem, a CPU 2 i 3 razem).

Możesz dowiedzieć się, że jądro nie zdaje sobie z tego sprawy, patrząc na pliki / sys / devices / system / cpu / cpu * / cpufreq / Wpływ_cpus, które zawierają „0”, „1”, „2”, „3” zamiast „0 1”, „0 1”, „2 3”, „2 3”.

Widocznym efektem tego niedopasowania jest proces jednowątkowy, który zaczyna działać z pełną prędkością na jednym procesorze (regulator „ondemand” reaguje szybko), a następnie po około 20 sekundach (w zależności od szczegółów ustawień) traci część swojej prędkości.

Powodem jest to, że system operacyjny z gubernatorem „ondemand” okresowo stosuje niskie częstotliwości na bezczynnych procesorach, nie spodziewając się, że pośrednio zmieni również częstotliwość naszego zajętego procesora. Nie jest to nawet widoczne, gdy spojrzysz na / sys / devices / system / cpu / cpu * / cpufreq / * cur_freq lub / proc / cpuinfo, system operacyjny po prostu tego nie wie!

Zatem w tych systemach rozwiązaniem jest powrót do prostego regulatora „wydajności”.

PS: W moim przypadku ciągłe działanie procesorów z pełną częstotliwością nic nie zmieniło w odniesieniu do szumu wentylatora. Podejrzewam, że gdy procesor pracuje na biegu jałowym, niższa lub wyższa częstotliwość nie będzie miała większego wpływu na zużycie energii.


0

Mam nowy procesor AMD Athlon II X4 631 (procesor Fusion do gniazda FM1) i nie oszczędza żadnej energii (wyglądałem na licznik energii)! Nie mam rdzenia turbo, więc nie potrzebuję ustawień na żądanie. Większość nowych procesorów sama oszczędza energię.

Podczas porównywania istnieje niewielka różnica, w zakresie 1-2%, w porównaniu do ustawień na żądanie i wydajności.


Witamy w AskUbuntu! Możesz zechcieć uzupełnić swoje oświadczenia pełnymi statystykami / badaniami, ponieważ twoja odpowiedź może być źle zrozumiana jako opinia, a nie badana odpowiedź.
Oyibo,

To także źle, Apple ma w tym tygodniu kłopoty ze spowolnieniem urządzeń w celu oszczędzania energii
Xen2050,

-1

Jest to stare, ale ponieważ nikt o tym nie wspominał, i dla kompletności dodam, że argument, w jaki sposób procesor działający na maksymalnej prędkości marnuje energię, wytwarza ciepło, hałas wentylatora itp. Jest NIEPRAWIDŁOWY .

Prawie wszystkie współczesne procesory, szczególnie komputery stacjonarne / serwerowe, przejdą w tryb głębokiego uśpienia po bezczynności (wyścig Google do bezczynności).

Skalowanie napięcia prawdopodobnie zaoszczędzi więcej energii, więc na laptopach może to nieco wydłużyć czas działania, ale na komputerach stacjonarnych i serwerach z regulatorem wydajności będzie w porządku dla większości „normalnych” użytkowników (którzy nie prowadzą farm serwerów lub podobnych).

Używam gov wydajności z moim i7-2600k, a temperatura procesora wynosi zwykle około 30 C.


To też jest po prostu źle. Monitoruj temperatury procesorów i zmieniaj częstotliwości, aby przekonać się sam (chyba że twój system nie zaimplementował go w pełni / poprawnie). Zobacz też łącze Apple, brzmi to jak zwykłe skalowanie częstotliwości / prędkości
Xen2050,

@ Xen2050, aby zobaczyć, co dla siebie? Czy sugerujesz, że procesor działający w 70 stopniach Celsjusza przez 2 sekundy może zużywać więcej energii niż ten, który działa w 5-6 sekundach w 60 stopniach, czy coś w tym kierunku? Nie jest to tak proste, jak monitorowanie temperatury procesora w danym momencie.
Denis

@ Xen2050 twój link wskazuje na iPhone'a, który jest zupełnie innym łukiem lub procesorem. Wskazałem, że skalowanie napięcia w połączeniu z konkretnym gubernatorem może na przykład pomóc na laptopach, i wyraźnie wspomniałem o komputerach stacjonarnych (Workstation) i procesorach serwerowych, ale tak naprawdę to, o czym mówiłem, istnieje nawet na telefonach od lat ( Sytuacja jest prawdopodobnie bardziej skomplikowana w tym przypadku, aby MPU mógł potrzebować odpowiedniego stanu C / P. W każdym razie przeczytaj jeszcze raz to, co wpisałem, i przejdź do trybu „wyścig do bezczynności” i głębokiego uśpienia procesora.
Denis
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.