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.
źródło
cpufreq-info
. Być może trzeba gosudo apt-get install cpufrequtils
najpierw zainstalować .Odpowiedzi:
Domyślnie Ubuntu używa regulatora częstotliwości ondemand . Aby sprawdzić / zmienić gubernatory, zainstaluj
cpufrequtils
pakiet w następujący sposób:Aby sprawdzić aktualną prędkość / regulatory dla każdego przebiegu rdzenia:
Możesz ustawić wszystkie rdzenie na działanie w następujący sposób:
Możesz potwierdzić, że wszystkie rdzenie działają teraz z maksymalną częstotliwością w następujący sposób:
Uwaga : ta zmiana jest tymczasowa. Po ponownym uruchomieniu komputer powróci do wersji na żądanie .
źródło
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
cpufreq
infrastrukturę, 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:
źródło