Wykrywanie Ubuntu i prędkości procesora

12

Mam starszy laptop, którego używam jako centrum multimedialnego na telewizorze i zwykle instaluję / ponownie instaluję / odinstalowuję różne systemy operacyjne i aplikacje, aby działał jak najsprawniej.

Jedna rzecz, którą zauważyłem, była bardzo dziwna. Mój laptop to HP Pavilion G62, który ma trzy rdzeniowy procesor AMD działający z częstotliwością 1800 MHz. Kiedy uruchamiam XBMC z Windows 7 i patrzę na szybkość procesora, wyraźnie mówi 1800 MHz. Jednak kiedy uruchamiam go z Ubuntu albo z programu uruchamiającego, albo jako sesji, mówi, że procesor ma tylko 800 MHz.

Chciałem to zbadać, więc załadowałem DXDIAG do systemu Windows, aby zobaczyć, jaka jest prędkość. Rzeczywiście, wskazuje, że jest to 1800 MHz. Jednak podczas uruchamiania HardInfo w Ubuntu mówi mi, że prędkość każdego rdzenia jest następująca: 1500 MHz, 1500 MHz i 800 MHz.

Czy to oznacza, że ​​zarówno reklamowana szybkość procesora, jak i prędkość wykrywana przez system Windows leżą lub są zaokrąglane? Czy jest problem z wykrywaniem prędkości procesora przez Ubuntu i mój system nie działa tak optymalnie, jak powinien? Byłbym skłonny powiedzieć to drugie ... głównie dlatego, że wydaje się, że Windows działa znacznie płynniej niż Ubuntu.

Scotty_80
źródło
4
Proszę opublikować wynik cpufreq-info. Być może trzeba go sudo apt-get install cpufrequtilsnajpierw zainstalować .
terdon
2
„Kiedy uruchamiam go z Ubuntu albo z programu uruchamiającego, albo jako sesji, mówi, że procesor ma tylko 800 MHz”. czy możesz zrobić zrzut ekranu?
Braiam

Odpowiedzi:

11

Domyślnie Ubuntu używa regulatora częstotliwości ondemand . Aby sprawdzić / zmienić gubernatory, zainstaluj cpufrequtilspakiet w następujący sposób:

sudo apt-get install cpufrequtils

Aby sprawdzić aktualną prędkość / regulatory dla każdego przebiegu rdzenia:

cpufreq-info

Możesz ustawić wszystkie rdzenie na działanie w następujący sposób:

sudo cpufreq-set -r -g performance

Możesz potwierdzić, że wszystkie rdzenie działają teraz z maksymalną częstotliwością w następujący sposób:

grep MHz /proc/cpuinfo

Uwaga : ta zmiana jest tymczasowa. Po ponownym uruchomieniu komputer powróci do wersji na żądanie .

Sylvain Pineau
źródło
1
Dzięki za informację! Uruchomiłem polecenia, które wymieniłeś, i to uderzyło w pierwszy rdzeń procesora do 1800 MHz, ale reszta miała 800 MHz. To, zgodnie z doskonale szczegółową odpowiedzią Siergieja poniżej, jest najprawdopodobniej normalne dla mojego systemu.
Scotty_80,
Edytowano odpowiedź, aby uwzględnić parametr -c, który mówi, którą częstotliwość procesora należy ustawić. Nie mogłem znaleźć sposobu na określenie wszystkich liczb procesorów naraz. Próbuję również napisać skrypt, aby włączyć tryb wydajności przy zasilaniu prądem przemiennym i tryb na żądanie na akumulatorze. Jeśli ktoś ma już na to rozwiązanie, dodaj tutaj. Dzięki.
Sri
1
Aby ustawić wydajność wszystkich procesorów za jednym razem, najpierw przejdź do trybu superużytkownika za pomocą sudo su, a następnie użyj tego: for ((i = 0; i <$ (nproc); i ++)); wykonaj cpufreq-set -c $ i -r -g wydajność; gotowe
Sri
10

Teoretyczne tło: W typowym komputerze procesor jest bezczynny przez większość czasu. Aby oszczędzać energię, nowoczesne procesory stosują skalowanie częstotliwości - tzn. System operacyjny może nakazać procesorowi przejście na niższą częstotliwość, gdy obciążenie jest niskie. Technologia nazywa się SpeedStep w procesorach Intel i Cool'n'Quiet w procesorach AMD.

W Linuksie skalowanie częstotliwości jądra jest implementowane przez cpufreqinfrastrukturę, która używa koncepcji „regulatorów” do kontrolowania częstotliwości.

Domyślnym gubernatorem jest „ondemand”, który zwiększa częstotliwość, gdy wykorzystanie procesora wzrośnie powyżej 95%. Pozwala to procesorowi zaoszczędzić trochę energii w stanie bezczynności i przejść do pełnej wydajności, gdy są rzeczy do zrobienia. Występuje pewne opóźnienie przejścia, mierzone w milisekundach, więc gdy bezczynny procesor nagle dostaje duże obciążenie, nadal przełącza się na niską częstotliwość przez kilka milisekund przed przełączeniem na pełną moc, więc w niektórych sytuacjach może to spowodować nieco niższą wydajność niż wtedy, gdy zawsze działa z pełną prędkością.

Istnieją inne regulatory , w tym regulator „wydajności”, który zawsze uruchamia procesor na pełnej częstotliwości. Eliminuje to opóźnienia przełączania, ale może zwiększać zużycie energii.

Możesz eksperymentować z różnymi gubernatorami, jak sugerowano w innej odpowiedzi, ale wątpię, aby przyniosło to dramatyczne rezultaty. Nie zrobiliby tego domyślnie, chyba że miałoby to sens w 99% przypadków :)

Wracając jednak do pytania: najprawdopodobniej system Windows pokazuje maksymalną możliwą częstotliwość procesora (tę, którą reklamują na obudowie procesora), podczas gdy Ubuntu pokazuje rzeczywistą częstotliwość, z jaką działa każdy z rdzeni procesora w danym momencie. Nie oznacza to, że procesor działa wolniej w Ubuntu. Jeśli wydaje się, że Ubuntu działa wolno na twoim laptopie, najprawdopodobniej jest to spowodowane przez coś innego - na przykład niską pamięć RAM, wolny dysk twardy itp. Nowoczesne Ubuntu z pewnością wymaga więcej zasobów niż, powiedzmy, Windows XP, na którym prawdopodobnie znajdziesz starszy laptop.

Więcej informacji technicznych:

Siergiej
źródło
To zdecydowanie to wyjaśnia! Gdybym jednak ustawił gubernatora na Wydajność, czy wszystkie moje rdzenie procesora nie powinny działać przy 1800 MHz? Obecnie, gdy zmieniam ustawienie, ustawia on tylko CPU1 na 1800 MHz. Pozostałe 2 mają tylko 800 MHz. Przypuszczam, że można to nazwać ograniczeniem procesora ...
Scotty_80,