Jeg fikset endelig den konstante viftelyden på Linux-bærbaren min — det var ikke maskinvaren


I noen måneder nå, hver gang jeg åpner nettleseren min, blir den bærbare datamaskinen så høylytt at man skulle tro den kompilte Linux-kjernen. Viften økte konstant hastigheten etter oppstart, men CPU-bruken lå fortsatt mellom 8 og 12%. Jeg målte temperaturer som nådde 65°C, noe som er varmt, men ikke farlig høyt. Jeg prøvde å rengjøre ventilene, og jeg byttet også ut termisk pasta.

Men ting stemte ikke. Det føltes mer som om systemet overreagerte enn at det overopphetet. Det tok mye graving i Ubuntus strømstyringssystem for at jeg skulle innse at jeg ikke hadde et kjøleproblem. Dette var et koordinasjonsproblem, og jeg måtte fikse det for å kontrollere laptopens vifte.

Viften reagerte ikke på temperatur — den reagerte på frekvens

Hvorfor 60°C fortsatt kan høres ut som 90°C

Å ignorere støy eller lyder fra din bærbare datamaskin kan være kostbart. Tidligere observerte jeg bare temperaturen, men min forståelse begynte da jeg begynte å se på CPU-frekvensen. CPU-en min lå ikke permanent rundt 100 %. Likevel førte små arbeidsutbrudd stadig til korte toppene i klokkehastigheten. Når toppene oppstod, økte spenningen og pakke-effekten, noe som fikk viftecontrolleren til å reagere.

Fordi kjølesystemer er designet for å reagere før temperaturene blir katastrofale, kan en økende strømbruk utløse en reaksjon. Dette skaper en situasjon der gjennomsnittstemperaturen holder seg innenfor rimelige grenser, men viftekurven blir presset oppover fordi det skjer gjentatte korte boost. Så tallene så bra ut på min bærbare PC, men det hørtes ut som om den ble overklokket.

Jeg opplevde moderate temperaturer og lav konstant belastning, men aggressiv frekvensadferd. Denne uoverensstemmelsen var det viktigste sporet jeg fikk. Den pekte meg direkte til strømstyringspolitikken, og jeg sluttet å bry meg om tørket termopasta.

Ubuntus «balanserte» profil er ikke en enkelt bryter - det er en stabel

Der skrivebordsinnstillingen og kjernen kan drive fra hverandre

Det moderne Ubuntu-systemet bruker en lagdelt tilnærming til strømstyring. Den første delen inkluderer skrivebords-skyveknapper som kommuniserer med power-profiles-daemon (PPD). I neste lag setter PPD Energy Performance Preference (EPP) og styringsmekanismen, som indikerer hvor raske responser som kreves og hvor aggressiv boosten skal være. Disse innstillingene blir sendt videre til skaleringsdriveren for å handle på dem, og til slutt kan CPU-en endre oppførsel og viftene vil reagere.

Dette er en ren kjede med ett lite problem: noen ganger kan PPD rapportere Balanced selv om EPP som ble skrevet avviker, eller hvis den EPP-en senere ble overskrevet av et konkurrerende verktøy. Noen av disse kan få skaleringsdriveren til å oppføre seg aggressivt.

Et eksempel er med Intel-systemer som kjører intel_pstate i aktiv modus. Labelene for scaling_governor funnet i /sys/devices/system/cpu/... kan vise "powersave" eller "performance," selv om EPP faktisk kontrollerer den faktiske oppførselen. Du får ikke hele bildet bare ut fra styringsnavnet.

For mitt spesifikke problem føltes CPU-oppførselen som ytelsesbiased responsivitet, selv om Ubuntu sa «Balansert.» Det jeg endte opp med var en prosessor som aldri egentlig sto i tomgang.

Noe annet presset CPU-en hardere enn jeg hadde innsett

Hvordan jeg verifiserte uoverensstemmelsen i stedet for å gjette

Mitt første blikk var på hva Ubuntu antok at det gjorde. Jeg bekreftet at jeg var på Balansert med kommandoen:

powerprofilesctl get

Deretter utførte jeg sanntidsovervåking av frekvensskala og sjekket guvernørtilstand på tvers av kjerner ved å bruke kommandoen:

sudo turbostat --interval 1

Jeg hadde allerede avvist enhver løpsk prosess ved å bruke htop; dette var et tilfelle av atferdsbias. Jeg trengte deretter å vite om det fantes noen konkurrerende verktøy. Hvis TLP var installert, kunne det være en utløsende faktor, det samme kunne cpupower være når det var aktivert. Jeg sjekket også om det var rester i /etc/default/cpufrequtils som tvang en spesifikk governor ved oppstart. Dette var alle viktige kontroller fordi det bare trengs ett overstyringssignal for å skape en maktkamp.

Så snart jeg observerte misforholdet mellom profilen og den faktiske skaleringsatferden på datamaskinen min, forsto jeg viftelyden.

Løsningen: gi ett system full kontroll og fjern tvetydigheten

Hvorfor stablet elektrisk verktøy er en stille katastrofe

Som standard er power-profiles-daemon aktivert på moderne Ubuntu. Det er mulig å utilsiktet skape overlappende myndighet ved å legge til TLP eller gjøre manuelle cpupower-justeringer. Som en tommelfingerregel bør det bare være én sjef for CPUen.

Hvis du holder deg til Ubuntus standardinnstillinger, vil du gi PPD en bedre sjanse til å håndtere profiler på en ryddig måte hvis du deaktiverer TLP og andre skaleringsjenester. Bruk kommandoene nedenfor for å kontrollere at governor og EPP gjenspeiler den valgte profilen:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference

Hvis alle kjerner returnerer samme verdi på begge, er du i det klare. Verdien du forventer er powersave hvis PPD er i Balansert-modus og intel_pstate er aktiv. Du bør få en balance_performance-verdi fra EPP-sjekken under disse samme forholdene. Hvis du får performance, viser det at det har vært en overstyring av den aktive profilen.

Du kan bruke TLPs detaljerte kontroll, men sørg for å konfigurere TLP nøye med power-profiles-daemon deaktivert. Så snart jeg hadde fjernet all tvetydighet og startet datamaskinen på nytt, fikk jeg jevnere frekvensatferd, og hvileklokkene sank som de skulle. Den tilsynelatende tilfeldige og konstante boosten ble situasjonsbestemt og forståelig.

Balansert betyr ikke alltid stille — før du justerer det

Det er et subtilt poeng å merke seg. Energiytelsespreferansen på Intel-systemer er ofte standardisert til balance_performance. Denne innstillingen favoriserer hastighet når det er korte aktivitetsutbrudd. Det er en skjevhet som vil gjøre at små oppgaver skaper boost som de ikke engang trenger.

Du vil ha mer effekt ved å flytte EPP mot balansert kraft enn ved å prøve å senke temperaturene. Laptopen din vil fortsatt fungere godt, men den vil reagere mindre aggressivt på hver oppdatering av en fane. Selvfølgelig kan viftestøy også være et maskinvareproblem, og små tiltak som å rengjøre eller bytte ut viftene kan hjelpe.

Relaterte artikler