Mój laptop (HP z układem i3) przegrzewa się jak szalony za każdym razem, gdy uruchamiam proces wymagający dużych zasobów (jak duża kompilacja, wyodrębnianie dużych plików tar lub ... odtwarzanie Flasha).
Obecnie szukam rozwiązań chłodzących, ale wpadłem na pomysł ograniczenia globalnego zużycia procesora. Doszedłem do wniosku, że jeśli procesor jest ograniczony, są szanse, że temperatura przestanie gwałtownie rosnąć i jestem gotów poświęcić trochę wydajności, aby wykonać zadanie.
- Czy mylę się w swoim rozumowaniu?
- Jak mogę ograniczyć ogólne zużycie procesora?
Jeśli to pomoże, uruchamiam Debiana.
Odpowiedzi:
Nie wiem, czy ograniczenie procesora do całego systemu jest czymś, co jest możliwe bez dużego hakowania, ale możesz łatwo ograniczyć ilość procesora zużywanego przez pojedynczy proces za pomocą cpulimit
Jedynym sposobem, w jaki mogę myśleć o tym, że potrafisz skutecznie to wykorzystać, jest napisanie skryptu opakowania (nie mogę tak naprawdę nazwać go skryptem, jest tak mały) dla aplikacji, o których wiesz, że to świnie zasobów. Powiedzmy na przykład, że Google Chrome używa dużo procesora, możesz zastąpić plik binarny Google Chrome na swojej ścieżce czymś takim jak:
Nie testowałem tego, więc weź to z odrobiną soli. Ze strony cpulimit wydaje się, że możesz ustawić reguły dla limitów procesorów w różnych aplikacjach. Nie jestem pewien, musiałbyś rzucić okiem.
źródło
Inną alternatywą, o której nie wspomniano, jest
cpufrequtils
zainstalowana i używana na moim laptopie z Debianem 6. Pozwala ona zmienić algorytm ( gubernator ,cpufrequtils
terminologicznie), którego jądro używa do skalowania częstotliwości taktowania w górę i w dół w odpowiedzi ładować - w szczególnościuserspace
regulator pozwala zablokować częstotliwość na dowolny sposób (oczywiście procesor musi być zdolny do pracy z tą prędkością).Użyłem go na przykład do zablokowania atomu na częstotliwości 800 MHz zamiast 1,6 GHz. Jest bardzo łatwy w użyciu.
źródło
Możesz ograniczyć rdzenie procesora automatycznie na podstawie temperatury za pomocą skryptu temp_throttle . Może działać w tle, gdy skupiasz się na ważniejszych rzeczach. Przykład uruchomienia:
* Oświadczenie - Jestem autorem i opiekunem temp_throttle *
źródło
Wejdź w bios i podkręć procesor. - Nie potrzeba sprytu.
źródło
Odwiedź tę stronę, wyjaśnia, jak zainstalować i używać
cpulimit
w Debian i Ubuntu:http://www.howtoforge.com/how-to-limit-cpu-usage-of-a-process-with-cpulimit-debian-ubuntu
źródło
Nie ma potrzeby zmiany gubernatora, wystarczy zmienić wartość
/sys/devices/system/cpu/*/cpufreq/scaling_max_freq
dla każdego rdzenia procesora.Np. Z tym dla pętli:
zobacz także mój skrypt setcpu .
( znaleziono oryginalne polecenia )
źródło
Możesz użyć,
renice
aby zmienić priorytet procesu według identyfikatora procesu lub grupy. Z przykładów dlarenice
:Dostosuj wartość nice, aby identyfikatory procesów 987 i 32 miały niższą wartość nice:
renice -n 5 -p 987 32
Dostosuj wartość nice, aby identyfikatory grup 324 i 76 miały wyższą wartość nice, jeśli użytkownik ma odpowiednie uprawnienia:
renice -n -4 -g 324 76
Dostosuj wartość nice, aby numeryczny identyfikator użytkownika 8 i użytkownik sas mieli niższą wartość nice:
renice -n 4 -u 8 sas
źródło