Prowadzę rozproszone projekty komputerowe, które zwykle chcą wykorzystywać 100% procesora. Jak ograniczyć użycie procesora pod względem temperatury zamiast zużycia procentowego? Jaka jest maksymalna bezpieczna temperatura, aby utrzymać działanie procesora Intel i5 24/7? (Bez limitu procesora FahCore_a4 powoduje, że ta maszyna działa w temperaturze 82 stopni Celsjusza.)
źródło
Oto jak rozwiązałem to za pomocą bash. Jeśli ktoś wymyśli lepszego demona (lepiej utrzymującego się w pobliżu temperatury docelowej), opublikuj go.
źródło
Sam procesor ma mechanizm, który wyłącza się, jeśli robi się za gorąco. (może nie, jeśli wyłączysz przerwania SMI, nie jestem tego pewien).
Główną aplikacją przestrzeni użytkownika jest
lm-sensors
pakiet. Po zainstalowaniu uruchom go,sensors-detect
aby go skonfigurować, jeśli twoje maszyny są takie same, możesz uruchomić to raz i korzystać z uzyskanych wyników wszędzie.Częstotliwość procesora jest łatwo kontrolowana za pomocą podsystemu sterownika cpufreq. patrz https://wiki.archlinux.org/index.php/CPU_Frequency_Scaling
Możesz napisać demona, który używa czujników lm do sprawdzania temperatury, a jeśli jest zbyt gorący, zmniejsz częstotliwość procesora.
źródło
W ten sposób rozwiązałem moje problemy z przegrzewaniem, które nie zostały spowodowane przez określony proces, ale przez to, że mój laptop nie rozproszył ciepła spowodowanego pracą z dużym obciążeniem procesora przez dłuższy czas. Główną różnicą w stosunku do rozwiązania, które oferuje sam kod da monkey, jest to, że używam skalowania częstotliwości procesora, zamiast używać cpulimit w określonym procesie. Ponieważ i tak mam zainstalowany i działający Psensor, korzystam z Psensora. Sugerowany demon, taki jak małpa da da, powinien również działać, jednak wymagane są dwa progi (min. I maks.). W Psensorze (Preferencje czujnika-> Alarm) ustawiam alarm dla odpowiedniego czujnika, jeśli staje się wyższy niż górny próg (używam 85) lub niższy niż dolny próg (używam 80). W Preferencjach-> Czujniki-> Skrypt wykonywany po uruchomieniu alarmu nazywam mój skrypt heatcontrol.sh w następujący sposób:
/ALLUSER/heatcontrol.sh powersave ondemand 82
Pierwszym parametrem jest poprawny administrator_skalowania, który zmniejsza częstotliwość procesora, np. Powerave. Drugi parametr to domyślny scaling_governor - ondemand dla większości systemów. Trzeci parametr to temperatura między dolnym a górnym progiem (dokładna wartość nie jest ważna). Psensor dodaje dwa dodatkowe parametry: identyfikator czujnika i zgłaszaną temperaturę.
A to jest mój skrypt heatcontrol.sh:
Działa dobrze dla mnie (UBUNTU 14.04 LTS).
Jako nowicjusz w Linuksie i bash korzystałem z wielu zasobów, w tym:
https://wiki.archlinux.org/index.php/CPU_frequency_scaling
http://elinux.org/Jetson/Performance#Viewing_the_current_CPU_status
źródło