Slome pc? Zo moet je je processor optimaliseren
Elke applicatie en proces heeft systeembronnen nodig en naast eventueel schijf- en netwerkgebruik hoort daar altijd ook het gebruik van geheugen en processor(s) bij. In dit artikel focussen we ons op het gebruik van de processors en bekijken we wat er eventueel te optimaliseren valt.
Welk besturingssysteem of app je ook draait: zonder processors bereik je niets. Het is dus best zinvol om na te gaan hoeveel processorkracht Windows en je programma’s gebruiken. Misschien kan het met iets minder of juist met iets meer, bijvoorbeeld voor toepassingen die wel wat extra power kunnen gebruiken. We leren je na te gaan welke processen op welke manier omspringen met deze systeembronnen en laten vervolgens zien hoe je een en ander bijstuurt zonder extra hardware, zoals een krachtiger grafische kaart, aan te schaffen.
Natuurlijk zijn er altijd wel diehard-gebruikers die meer willen dan een voorzichtige, softwarematige optimalisering en dan belanden we al snel bij het zogenoemde overklokken. Dit begrip doet sommigen huiveren, maar als je zo’n overklokproces stapsgewijs aanpakt, kan dat best veilig gebeuren en niet zelden met merkbaar resultaat. Dit proces reserveren we voor een ander artikel.
Cpu en gpu
Voor we achterhalen wat het cpu- en gpu-gebruik van je systeem is, vertellen we kort waar deze termen voor staan. De cpu (central processing unit oftewel centrale verwerkingseenheid) is het kloppende hart van je pc en voert in regelmatige cycli uiteenlopende instructiesets uit voor allerlei programma’s en systeemcomponenten. De cpu is ontworpen om één taak tegelijk uit te voeren, maar kan wel snel tussen verschillende taken schakelen, zodat het lijkt alsof die simultaan worden uitgevoerd.
De gpu (graphics processing unit oftewel grafische processor) is een gespecialiseerde processor die in eerste instantie voor allerlei videotaken wordt aangesproken. Zo’n gpu kan geïntegreerd zijn in de chipset van je moederbord (igpu), maar voor nog snellere bewerkingen kun je een losse, ‘dedicated’ videokaart inzetten (dgpu). Overigens kan zo’n gpu niet alleen videobeelden aansturen, maar is die tevens geschikt voor allerlei andere, vooral parallelle berekeningen.
©PXimport
Algemeen processorgebruik
De cpu en gpu bepalen dus beide in grote mate hoe krachtig je systeem is, maar hoe kom je er nu achter hoe zwaar je systeem die processors op een gegeven ogenblik belast? Dat kun je vanuit Windows zelf doen. Open het taakbeheer (met Ctrl+Shift+Esc) en ga naar het tabblad Prestaties. Je kunt hier het realtime gebruik van elke primaire systeembron bekijken; naast processor en gpu ook geheugen, schijf en netwerk via wifi en/of ethernet. Open Beeld / Bijwerksnelheid om de standaardperiode van 60 seconden aan te passen naar 30 seconden of 4 minuten.
Beschik je alleen over een geïntegreerde gpu, dan verschijnt hier wellicht GPU 0, terwijl je bijvoorbeeld GPU 1 en GPU 2 ziet staan als je over twee dgpu’s beschikt (hierbij wordt ook de temperatuur vermeld). Zie je ook iets staan als (Link 0), dan betekent dit dat beide grafische kaarten parallel met elkaar werken, zoals bij SLI (NVIDIA) of CrossFire (AMD).
De cpu-informatie op het tabblad Prestaties is rechttoe rechtaan, want beperkt tot één enkel gebruikspercentage, terwijl dat bij de gpu duidelijk complexer is. In het kader ‘Gpu intern’ lees je hier meer over.
©PXimport
Gpu intern
In Windows Taakbeheer kun je bij het opvragen van gpu-informatie termen zien opduiken als gpu-engine en gpu-geheugen. Dit vergt enige toelichting. Een gpu bestaat uit meerdere units (engines), die elk doorgaans uit meerdere kernen zijn opgebouwd. Ze kunnen wel parallel aan elkaar werken en ook dezelfde kernen delen. Uiteraard spreekt een gpu ook geheugen aan. De term toegewezen gpu-geheugen verwijst naar geheugen dat exclusief aan de gpu is voorbehouden. Dat kan zogenoemd VRAM zijn (video-RAM; bij dgpu’s), maar ook gereserveerd systeemgeheugen (bij igpu’s). Verder is er ook nog gedeeld gpu-geheugen: dit geheugen delen igpu’s dynamisch met de cpu. Windows is wel zo slim niet meer dan de helft van het beschikbare fysieke systeemgeheugen aan de gpu ter beschikking te stellen. Is er meer nodig, dan springt het zogenoemde virtuele geheugen bij.
©PXimport
GPU-Z
Bij wat oudere systemen is het zelfs niet uitgesloten dat je op het tabblad Prestaties gewoon geen GPU-onderdeel ziet verschijnen. Dit heeft te maken met een verouderde gpu-driver. Om dit na te gaan, druk je op Windows-toets+R en voer je dxdiag.exe uit. Open het tabblad Beeldscherm en kijk bij Stuurprogramma’s: hier moet Model stuurprogramma: WDDM 2.x of hoger staan.
Geeft het taakbeheer niet thuis voor je gpu? Geen nood: er zijn ook externe tools waarmee je die informatie alsnog kunt opdiepen, zoals het gratis en portable GPU-Z. Meteen na het opstarten verschijnt allerlei technische informatie over je gpu. Heb je meerdere gpu’s, dan kies je linksonder het gewenste exemplaar.
Om het gpu-gebruik te monitoren, ga je naar het tabblad Sensors. Hier vind je onder meer de temperatuur, ventilatorsnelheid, gpu-belasting en het geheugengebruik, zowel van het toegewezen geheugen (Dedicated) als van het gedeelde systeemgeheugen (Dynamic). Via de pijlknopjes geef je telkens aan welke meting je verkiest: de huidige, laagste, hoogste of gemiddelde waarde.
©PXimport
Specifiek processorgebruik
De tools die we tot nog toe hebben besproken, geven in feite alleen inzicht in het systeemwijde processorgebruik. Wil je meer weten over het gebruik door een specifiek proces of service, start dan opnieuw het taakbeheer. Open in eerste instantie Processen, dat bevat drie onderdelen: Toepassingen, Achtergrondprocessen en Windows processen. In de kolom Processor lees je bovenaan het actuele gebruik van alle processorkernen af.
Je hoeft maar op de kolomtitel te klikken om die te sorteren op processorgebruik. Verschijnt deze kolom niet, klik dan met rechts op een willekeurige andere kolomtitel en plaats een vinkje bij Processor. Hier kun je trouwens ook GPU en GPU-engine selecteren. Op het tabblad Details kun je langs deze weg bovendien Processortijd en verder Toegewezen GPU-geheugen en Gedeeld GPU-geheugen zichtbaar maken. Jammer genoeg verschijnt in beide kolommen slechts een zinvolle waarde als je over drivermodel WDDM 2 of hoger beschikt (zie bij ‘GPU-Z’).
Zowel bij Processen als bij Details kun je nu voor elk afzonderlijk programma of proces het cpu- en gpu-gebruik aflezen. Het is verstandig om hier ook de kolom Opdrachtregel zichtbaar te maken, zodat je ook het pad naar het programmabestand van dat item kunt zien.
Specifiek met het oog op de cpu loont het ook de moeite om naar het tabblad Prestaties te gaan en onderaan op Broncontrole openen te klikken. Ook hier krijg je per proces en service detailinformatie over het cpu-gebruik. In de grafische weergave rechts vind je bovendien de activiteit per logische processor terug. Verderop in dit artikel, bij ‘Prioriteit’ en ‘Affiniteit’, lees je hier meer over.
©PXimport
Hostprocessen
Helaas tref je bij deze items doorgaans ook hostprocessen aan. Die bestaan uit meerdere deelprocessen en maken het helaas lastiger om vast te stellen welk proces precies verantwoordelijk is voor het gebruik van de systeembronnen.
Dat is vaak het geval bij browsers. Start bijvoorbeeld maar eens Google Chrome op, met enkele tabbladen geopend. Het item chrome.exe verschijnt nu meerdere keren. De kolom PID (Process Identifier) geeft al aan dat het telkens om een ander deelproces gaat, maar hoe weet je nu welke browserextensie of tabblad zoveel cpu-tijd of andere systeembronnen opeist?
Daarvoor kun je bij de browser zelf aankloppen. Ga naar Chrome en kies Meer programma’s / Taakbeheer: in de kolom Taak lees je nu mooi af welke taak met welke PID overeenkomt. Klik met rechts op een kolomtitel voor nog meer informatie. Ook andere browsers hebben een vergelijkbaar taakbeheer ingebouwd.
Op het tabblad Details van Windows Taakbeheer tref je nog een ander veelvoorkomend hostproces aan: svchost.exe. Om na te gaan waar het precies over gaat, noteer je de bijbehorende PID en lokaliseer je die op het tabblad Processen. Hier krijg je meer informatie over de achterliggende servicehost, zoals Remote Desktop Services of Task Scheduler. Klik hier met rechts op zo’n service en kies Services openen, waarna je die service verder kunt beheren of zelfs stopzetten, als je tenminste goed weet waar je mee bezig bent.
©PXimport
Langdurig monitoren
In dit artikel hebben we je een paar tools aangereikt waarmee je het cpu- en gpu-gebruik van het systeem of van specifieke processen realtime of over een heel korte periode kunt monitoren. Windows beschikt ook over een ingebouwde tool waarmee je dat over een langere periode kunt doen, zelfs van veel andere systeembronnen als het geheugen en het schijf- en netwerkgebruik.
In het kort ga je hier als volgt mee aan de slag. Druk op Windows-toets+R en voer perfmon uit. In het linkerpaneel klik je op Gegevensverzamelaarsets en klik je met rechts op Gedefinieerd door de gebruiker. Kies Nieuw / Gegevensverzamelaarset. Vul een naam in, kies Handmatig maken (geavanceerd), klik op Volgende en selecteer Prestatiemeteritem. Bevestig met Volgende en met Toevoegen. Open nu het beoogde onderdeel, zoals GPU Adapter Memory of Processor, en selecteer (alleen) de gewenste items. Onderaan kun je aangeven welke instanties je mee wilt monitoren. Bevestig met Toevoegen >> en met OK. Stel een geschikt Interval van steekproeven in. Rond af met Volgende (2x) en met Voltooien.
Klik met rechts op de toegevoegde set en klik op Starten. Na het stopzetten van de test vind je de resultaten terug in de rubriek Rapporten, in de vorm van een grafiek.
©PXimport
Energiebeheer
We hebben nu verschillende tools besproken waarmee je het gebruik van processors kunt opvragen of monitoren. Nu is het tijd om na te gaan hoe je zelf in dit gebruik kunt ingrijpen, met name op cpu-niveau.
Een eenvoudige manier om systeemwijd in te grijpen op onder meer het cpu-gebruik, is via het Windows Energiebeheer. Tik energie in het Windows-zoekvak en start Een energiebeheerschema selecteren op. Klik links op Een energiebeheerschema maken en selecteer het schema dat het best aansluit bij je wensen, bijvoorbeeld Energiebesparing. Geef een schemanaam op, druk op Volgende en stel alvast de gewenste instelling voor beeldscherm en slaapstand in. Bevestig met Maken.
Vervolgens klik je naast je eigen schema op De schema-instellingen wijzigen en kies je Geavanceerde energie-instellingen wijzigen. Open de rubriek Energiebeheer voor processor en stel zowel de Minimale als de Maximale processorstatus in. Stel deze laatste bijvoorbeeld in op 75% als je de cpu nooit maximaal wilt laten belasten.
Je treft hier ook de optie Koelbeleid voor systeem aan, waarbij je kunt kiezen tussen Actief en Passief. Kies Actief voor betere prestaties en Passief voor een zuiniger beleid. Bij de tweede optie zal het systeem het stroomverbruik van bepaalde onderdelen beperken, terwijl in de actieve modus de ventilator bij intensief gebruik sneller gaat draaien.
©PXimport
Prioriteit
Misschien wil je het processorgebruik finetunen voor specifieke applicaties, bijvoorbeeld voor zwaardere toepassingen die je wel vaker gebruikt (graag wat intenser cpu-gebruik) of voor services die soms al te gretig de processor aanspreken (graag wat minder cpu-gebruik). Dat is mogelijk, maar eerst toch enige toelichting.
Je moet namelijk weten dat zowat alle moderne processors over meerdere kernen (cores) beschikken. Als nu in het bios ‘hyperthreading’ is geactiveerd, dan zijn er per kern normaliter twee ‘threads’ beschikbaar. Een processor met zes fysieke kernen kan dus twaalf threads tegelijk verwerken. We hebben het dan over twaalf logische processors.
Je kunt nu zelf bepalen hoeveel cpu-bronnen je aan (de threads van) processen geeft. Open hiervoor opnieuw Windows Taakbeheer en ga naar het tabblad Details. Klik met rechts op het gewenste proces en kies Prioriteit instellen. Standaard staat die ingesteld op Normaal, maar je kunt nog uit vijf andere prioriteiten kiezen: Laag, Lager dan normaal, Hoger dan normaal, Hoog en Realtime. Belangrijke processen kun je gerust instellen op Hoger dan normaal of Hoog, maar de instelling Realtime raden we af.
©PXimport
Affiniteit
Als je het cpu-gebruik nog verder wilt finetunen, kun je zelfs ingrijpen tot op het niveau van logische processors door de zogeheten ‘affiniteit’ aan te passen. Hiermee bepaal je hoeveel en welke logische processors een proces mag aanspreken. Standaard voert Windows processen namelijk op alle beschikbare logische processors (en kernen) uit. Veel prestatiewinst hoef je van zo’n ingreep niet echt te verwachten, maar het kan bijvoorbeeld wel wat helpen als je langdurige en cpu-intensieve applicaties elk op andere processorkernen laat draaien.
Het is in elk geval niet moeilijk om de affiniteit van een proces aan te passen. Daarvoor blijf je nog even op het tabblad Details van het taakbeheer. Klik opnieuw met rechts op een procesnaam en kies deze keer Affiniteit instellen. Je hoeft nu maar het vinkje te verwijderen naast de logische processors die je liever niet voor dit proces laat gebruiken.
Vervelend is wel dat zowel de prioriteit als de affiniteit bij de volgende opstart ‘genormaliseerd’ wordt. Om een applicatie altijd met een specifieke prioriteit of affiniteit op te starten, zit er weinig anders op dan de opdrachtregel van de bijbehorende snelkoppeling aan te passen, met de volgende syntax:
cmd.exe /c start "<programma-naam"> /<priority-name> /affinity <#> "<programma-pad>"