Limitare CPU cu cputhrottle

Air-ul nu este făcut pentru jocuri, dar parcă atunci când jocul cere un Pentium IV minim pentru a rula (Crusader Kings II), este frustrant să nu-l pot rula pe noul meu laptop. De fapt, el rulează, dar se încinge și ventilatoarele încep să ruleze la turație maximă în doar câteva secunde. Parcă nu-mi vine să-l stresez în halul ăsta. Am căutat imediat soluții, cum ar fi o emulare a jocului într-o mașină virtuală și limitarea frecvenței procesorului din respectiva mașină, dar spre surpinderea mea, nici Parallels și nici VMWare Fusion nu permite controlul direct al acestui parametru. În plus, jocul are un port pentru OSX, de ce să-l emulez?

Pentru că știu că grafica nu este deloc spectaculoasă, mă așteptam ca doar procesorul să încălzească Air-ul, așa că am căutat soluții pentru limitarea acestuia. Și am găsit cputhrottle, un mic utilitar care face exact acest lucru. Trebuiee rulat ca root și are nevoie de doar doi parametri: PID-ul procesului și procentul maxim care să-i fie permis să folosească (PID-ul se pote afla rulând top -u). Așadar, rulând procesul jocului la 15% (folosind comanda ./cputhrottle 5868 15), temperatura Air-ului rămâne undeva sub 60 de grade și ventilatoarele au turație minimă. Muzica este afectată grav, dar din fericire am coloana sonoră ca fișiere separate, pe care le pot rula în VOX sau iTunes sau orice alt player audio, fără impact major asupra resurselor sistemului. Ok, jocul este ceva mai lent, dar nu vorbim despre un FPS, viteza chiar nu este vitală, ba din contră, e nevoie de răbdare pentru a duce la capăt o partidă.

1 Like

Având tot un MacBook Air (2013, Haswell), m-am lovit de problema încălzirii excesive în jocuri. Am ajuns la concluzia că parte din vină o poartă politica excesiv de conservatoare în legătură cu temperatura la care ventilatorul începe să să-și mărească turația. Eu folosesc Macs Fan Control în care poți seta niște limite minime și maxime pentru temperaturâ/turație.

De exemplu: setezi 50-80 grade C ca limite. Asta înseamnă că la pănă la 50C, turația ventilatorului stă la minim (aprox 1200 RPM) iar la 80 C este la maxim (aprox 5500-6000). Dar între cele două valori este o creștere constantă, nu așteaptă să ajungă și să stea 2-3 minute procesorul la 80C ca să înceapă să urle ventilatoarele. Nu știu algoritmul folosit dar pare să fie regula de trei simplă. Dacă la 50C sunt 1200RPM, atunci la 70C sunt X RPM.

E mai ușor să eviți încălzirea (crescând treptat turația ventilatorului) decât să cobori temperatura, mai ales că e și în sarcină la momentul respectiv.

Știu și eu… parcă am mai multă încredere în Apple când vine vorba de turația ventilatorului decât într-un algoritm 3rd party. Și problema mea nu era neapărat turația prea mare prematură, ci efectiv încâlzirea procesorului, care ajunge rapid la 90 de grade (măsurat cu iStat Menus).

Asa m-am gândit și eu, ca știe Apple ce face. Dar după ce am văzut cum temperatura procesorului crește la 80C și ventilatorul stă 1200RPM cateva minute până se decide să urce brusc la 5000 RPM mi-am dat seama că Apple a prioritizat zgomotul și consumul redus în fața temperaturii procesorului.

Aceeași impresie o am eu în legătură cu funcționarea ventilatorului de pe Mac Mini. Dacă-l las în voia lui, mărește turația abia atunci când temperatura din interior e foarte sus. Acum folosesc iStat Menus pentru a mări permanent turația, e mult mai OK așa.

Câteva precizări: cputhrottle poate fi instalat mai simplu din Homebrew. Iar dacă nu vă plac aplicațiile din Terminal, puteți folosi AppPolice, care face exact același lucru, dar are o interfață grafică simplă și eficientă (nu mai trebuie să căutați PID-ul aplicației). Merge și pe Yosemite.