Geheugen controleren op fouten met gratis tools

Close-up van een DDR5-geheugenmodule van TeamGroup.
Je systeem doet raar, met crashes, bevriezingen of plotseling opnieuw opstarten. Lastig, vooral omdat de oorzaak vaak moeilijk te achterhalen is. Mogelijk is defect geheugen het probleem. Daarom gaan we in dit artikel het geheugen controleren met behulp van gratis software.

Wanneer een geheugenprobleem optreedt, kunnen de symptomen zeer divers zijn. Naast inconsistente crashes van diverse programma’s kan zo’n defect er ook toe leiden dat Windows zomaar herstart of bevriest. Maar ook bestandscorruptie is mogelijk of het niet meer kunnen installeren van nieuwe programma’s. Of als het geluid niet meer werkt of je systeem plots erg traag reageert, zelfs als er nauwelijks applicaties draaien. Kortom, een veelheid aan mogelijke symptomen, wat het gericht zoeken naar de precieze oorzaak er bepaald niet makkelijker op maakt.

Met wat geluk geeft het systeem zelf een aanwijzing dat het wellicht om een geheugenprobleem gaat, zoals wanneer de hoeveelheid ram niet langer correct wordt gerapporteerd in het bios, kort na het opstarten of vanuit het besturingssysteem. In Windows gebruik je het onderdeel Taakbeheer om deze informatie op te zoeken. Druk op Ctrl+Shift+Esc, ga naar Prestaties, open Geheugen en kijk rechtsboven de grafiek.

Check voor alle zekerheid ook het Meldingencentrum van Windows. Het valt niet uit te sluiten dat hier de melding verschijnt om Windows Geheugencontrole uit te voeren.

Bij het opstarten van de pc voert normaal gesproken ook het bios een snelle geheugencheck uit, wat bij problemen een aantal pieptonen geeft. Elke bios gebruikt daarvoor eigen codes. Bij Aware/Phoenix bijvoorbeeld is dat meestal één lange piep, bij AMI kunnen dat naargelang het geheugenprobleem verschillende codes zijn. Een overzicht van bios-piepjes vind je hier, maar raadpleeg tevens je systeemhandleiding.

Vage indicaties

Jammer genoeg zal een systeem een (geheugen)fout niet altijd correct diagnosticeren. Toch zijn er bij ernstige problemen vaak andere indicaties die mogelijk helpen bij de probleemidentificatie. Ze zijn zeldzaam, maar ook in Windows 10 kunnen zogenoemde BSOD’s (Blue Screen of Death) voorkomen. Je krijgt dan de melding “Er is een probleem met deze computer en deze moet opnieuw worden opgestart”, samen met een bugcheck-code (met string en hex-code).

Er is een pagina op de Microsoft-site met een lange lijst van die codes, maar die maakt helaas duidelijk zelfs wanneer het woord memory in de string voorkomt, je geen garantie hebt dat het daadwerkelijk een geheugenprobleem is. Je kunt natuurlijk een zoekmachine raadplegen, maar er is nog een andere Microsoft-pagina die mogelijk enige houvast biedt.

Overigens maakt Windows bij een BSOD normaliter ook een geheugen-minidump. Die kun je eventueel na de herstart laten inlezen door het gratis tooltje BlueScreenView, die ook de bugcheck-code laat zien.

Verder doe je er goed aan de Windows-logboeken te raadplegen. Druk op Windows-toets+R, voer eventvwr.msc uit en open Windows-logboeken, met name het onderdeel Systeem en eventueel ook Toepassing. Sorteer de data volgens Datum en tijd en controleer op fouten rond het tijdstip van de symptomen. Ook hier helpt een gerichte zoektocht op internet je hopelijk verder.

Soorten geheugenfouten

Stel dat je op basis van de symptomen of eventuele indicaties vermoedt dat het om een geheugenprobleem gaat, dan ben je er nog niet. Immers, je systeem bevat wellicht meerdere geheugenmodules en slechts een van die modules is onbetrouwbaar geworden. Daarbij is het nog de vraag om welk type fout het gaat, terwijl dat de optimale testmethode kan bepalen.

Of misschien zijn de modules op zich wel in orde, maar is een geheugenslot defect geraakt. Het kan trouwens ook een ander probleem zijn waardoor het geheugen niet langer betrouwbaar functioneert. Zo kan het vooral bij laptops voorkomen dat de temperaturen te hoog oplopen, wat ook op de geheugenchips een impact kan hebben.

En dan gaan we er nog van uit dat je systeem niet te agressief is overgeklokt, dat de geheugenchips in de aangewezen sleuven zijn geplaatst en optimaal op je moederbord zijn afgestemd. Bij singlechannel-geheugen bijvoorbeeld wordt slechts één kanaal tussen de geheugencontroller op de cpu en het geheugen ingezet, wat maakt dat de snelheid wordt gelimiteerd door de traagste geheugenmodule.

Nagaan of geheugen helemaal betrouwbaar is en eventuele onvolkomenheden trefzeker vaststellen is geen eenvoudige opgave, vooral omdat er verschillende soorten fouten kunnen optreden, die in principe elk om een andere testmethode vragen. We sommen enkele van de meest voorkomende fouttypes op.

- AF (Address decoder Fault): bij een poging om een specifiek bit te schrijven of te lezen wordt een verkeerde bit geadresseerd;

- SAF (Stuck-At Fault): een bit geeft altijd de waarde 1 (SA1) of 0 (SA0) terug, zelfs als die wordt ingesteld op 0 of 1;

- RDF (Read Disturb Fault): een geheugenbereik wordt bij een eenvoudige leesinstructie ongewild gewijzigd;

- RF (Retention Fault): bits verliezen na enige tijd de ingestelde waarde;

- CF (Coupling Fault): een aanpassing van één bit wijzigt ongewild ook een andere bit in dezelfde zin (of in omgekeerde zin: Inversion Coupling Fault ofwel CFin). Deze fouten zijn mogelijk te wijten aan een kortsluiting tussen twee cellen (Bridging Fault ofwel BF).

Het mag duidelijk zijn dat een enkele test nooit alle fouttypes exact kan vaststellen. Eén voorbeeld slechts: een test waarbij alle bits op 1 worden ingesteld kan weliswaar een SA0-fout detecteren, maar geen SA1-fout. Precies daarom voorzien degelijke geheugencheckers in verschillende tests.

Probleemopsporing

Laten we er van uitgaan dat het inderdaad om een geheugenprobleem gaat. Nou kun je wel meteen geheugencheckers inzetten, maar vaak zijn zulke tests erg tijdrovend. Wij zouden eerst nakijken of de geheugenmodules nog wel stevig in de sleuven zitten. Zo hebben we het al bij meerdere systemen meegemaakt dat het bios ons op geheugenfouten attendeerde die werden opgelost na een ‘reseat’ van de geheugenmodules (lees: de modules even uit de sleuf halen en er weer stevig instoppen).

Voor je een arbeidsintensieve geheugenchecker inzet, kun je eventueel ook eerst een (snelle) benchmark uitvoeren, bij voorkeur een tool die de geheugenprestaties van je systeem afzet tegen vergelijkbare systemen (zie ook de database op www.memorybenchmark.net). Zo’n tool is bijvoorbeeld PassMark Performance Test, met onder meer een Advanced Memory Test (dertig dagen gratis proefversie).

Blijkt het geheugen opvallend traag, dan kan dat eventueel op gebrekkig geheugen wijzen. In dit geval is nader onderzoek met een geheugenchecker vereist. Laat je niet verleiden om hiervoor zogenoemde rambooster-software in te zetten, want zulke tools verkopen weinig meer dan gebakken lucht. Blijkt je geheugen daarentegen opvallend snel, dan is je systeem wellicht overgeklokt zonder voldoende rekening te houden met de aangewezen veiligheidsmarges (doorgaans is drie tot zes procent een aanvaardbare marge). Ook dit kan tot geheugenproblemen leiden.

Configuratie geheugencontrole

Lijkt een grondige geheugencontrole de enige oplossing en werk je met Windows, dan kun je eerst de ingebouwde Geheugencontrole opstarten. Druk Windows-toets+R in en tik mdsched.exe gevolgd door Enter, waarna je de pc meteen of op een later moment laat herstarten. Of je start de Windows-herstelomgeving op of je boot je pc vanaf een Windows-installatiemedium, waarna je bij Geavanceerde opties de Opdrachtprompt opent en het commando mdsched.exe uitvoert.

Na de herstart begint de tool aan een reeks standaardtests (drie basistests en vijf extra tests). Er is een nog uitgebreidere testreeks, maar we raden je aan met de standaardtests te beginnen. Levert dat niks op en ben je vrij zeker dat het aan het geheugen ligt, probeer het dan met de uitgebreidere versie.

Met F1 schakel je tussen de drie modi: Minimaal, Normaal en Extra. Via de tabtoets geef je aan of de geheugencache moet worden ingeschakeld, en zo ja bij welke tests. Met uitgeschakelde cache dwing je de processor alle data van de geheugenmodules zelf op te halen.

Standaard wordt elke test tweemaal uitgevoerd, maar dat kun je eventueel opvoeren tot vijftien keer. Afhankelijk van je systeem en de ingestelde parameters kan zo’n testreeks enkele minuten tot enkele uren duren. Met F10 pas je de ingestelde waarden toe en kan de controle beginnen.

Adrescodering

Wanneer een geheugenchecker fouten signaleert, vermeldt die het problematische geheugenadres zoals de geheugencontroller op de cpu dat doorgeeft. Zo’n adres laat zich helaas niet zonder meer linken aan een specifiek fysiek adres op een geheugenmodule. Immers, om (gelijktijdige) toegang tot het geheugen door de geheugencontroller te versnellen worden allerlei technieken ingezet waaronder ‘interleaving’ (op het niveau van geheugenkanalen, -banken en -rijen).

Deze technieken zijn niet alleen zeer complex, bij sommige chipsets worden ze niet eens openbaar gemaakt. Dat maakt het haast onmogelijk een specifieke module aan te wijzen, tenzij de tool grondig kennis heeft van de gebruikte technieken bij de diverse chipsets en moederborden.

Analyse geheugencontrole

Tijdens de testrondes krijg je weliswaar al statusinformatie, maar je blijft natuurlijk niet voor je lol het scherm in de gaten houden. Na de tests herstart het systeem automatisch en krijg je alsnog een statusmelding na je aanmelding. Of je drukt op Windows-toets+R en je voert eventwr.msc uit. Open achtereenvolgens Windows-logboeken / Systeem en sorteer de gebeurtenissen volgens Gebeurtenis-id of Bron, waarbij je filtert op respectievelijk 1201 en MemoryDiagnostic-Results. In het onderste venster, bij het tabblad Algemeen zie je het resultaat.

Wie hier een duidelijke indicatie verwacht over welke geheugenmodule (of sleuf) problemen geeft, moeten we teleurstellen. In het kader ‘Adrescodering’ lees je waarom dat zo lastig te ontdekken is. Er zit dus weinig anders op dan door slimme eliminatie zelf uit te zoeken om welke module of sleuf het precies gaat (zie de paragraaf ‘Eliminatie’).

MemTest86

Kun of wil je Windows Geheugencontrole niet gebruiken of had je graag een tweede mening, dan vind je een uitstekend alternatief in MemTest86. Wij gaan met de gratis editie aan de slag. Er bestaan ook betaalde versies van. Let wel, v8-releases zijn alleen bedoeld voor uefi-machines; voor oudere legacy bios-toestellen heb je een v4-release nodig.

Je zult merken dat het gedownloade en uitgepakte zip-archief een img-bestand bevat. Dat is een schijfkopiebestand dat je eerst moet omzetten naar een opstartbaar medium, zoals een usb-stick. De benodigde tools hiervoor worden meegeleverd, samen met een uitgebreide handleiding in pdf.

Start imageUSB.exe met een dubbelklik. Stop een (lege) usb-stick in je pc en druk op de knop Refresh Drives. Plaats een vinkje bij de stick, kies Write image to USB drive (Step 2, indien nodig voer je eerst nog een herformattering uit) en verwijs bij Step 3 naar het juiste img-bestand. Bevestig met Write, met Yes en Ja. Start je pc van deze usb-stick op. Raadpleeg indien nodig je systeemhandleiding.

Configuratie MemTest86

Als het goed is, verschijnt een MemTest86-splashscreen en begint de tool even later aan de standaard geheugentests. Wil je zelf de configuratie aanpassen, druk dan snel op een toets. Via de Config-knop kun je vervolgens diverse parameters aanpassen. Via (T)est Selection geef je aan welke van de twaalf tests je wilt laten uitvoeren en hoeveel keer (standaard 4). Bij (A)ddress Range stel je het te testen adresbereik in en bij (C)PU Selection geef je aan of je daarbij één cpu of alle beschikbare cpu-kernen wilt aanspreken, en in welke volgorde. Je doet er goed aan het eerst met slechts één cpu te proberen. In hoofdstuk 2.5.4 van de handleiding kun je terecht voor meer informatie.

Selecteer (S)tart Test om de geheugencontrole te beginnen en houd er rekening mee dat die erg veel tijd in beslag kan nemen.

Analyse MemTest86

Tijdens het testen krijg je gelijk de teststatus te zien. Duiken er inderdaad fouten op, dan verschijnen die in de onderste schermhelft. Na afloop krijg je een rapportoverzicht en kun je dat in een html-bestand bewaren (bevestig met y) in de map \EFI\BOOT.

Veruit de meeste fouten hebben met het geheugen te maken, maar houd er rekening mee dat de tests impliciet ook cpu en caches (L1 en L2) checken. De ontwikkelaars van MemTest86 claimen dat zo’n 99,9% van de gerapporteerde fouten legitiem zijn en dus het best snel moeten worden aangepakt. Immers, vroeg of laat kan zo’n fout daadwerkelijk gevolgen hebben voor de werking van je systeem.

We gaan er even van uit dat de geheugentests inderdaad geheugenfouten hebben gevonden. Zoals gezegd komt het er dan vooral op aan via een vorm van eliminatie te onderzoeken of het om een geheugenmodule of -sleuf gaat, en welke precies. Dat lukt helaas niet als de geheugenmodules vast gesoldeerd blijken te zijn, wat steeds vaker voorkomt bij superslanke laptops.

Eliminatie

De eenvoudigste manier is om selectief modules uit je systeem te verwijderen en met slechts één module tegelijk te testen tot je de foute module(s) vindt. Om uit te sluiten dat het om een gebrekkige sleuf gaat, test je modules ook even in een andere sleuf. Bij sommige moederborden en geheugentypes, zoals in dualchannel-modus, kun je helaas niet zomaar modules verwijderen.

Er zit dan weinig anders op dan modules te roteren, waarbij je de rotatie beperkt tot twee modules tegelijk. Je zou bijvoorbeeld de module in sleuf 1 kunnen verplaatsen naar sleuf 3 en die uit sleuf 3 in sleuf 1 stoppen. Als je dezelfde test vervolgens opnieuw uitvoert en de falende bit of het geheugenadres blijkt gewijzigd, dan weet je dat het om een van de verplaatste modules gaat. Door moduleverplaatsingen slim te combineren, kom je uiteindelijk uit tot bij het gebrekkige exemplaar.

De meeste moderne moederborden detecteren weliswaar automatisch de modules, maar sommige vereisen dat je eerst de sleuven met lage nummers opvult (zoals sleuf 0 of 1). Het kan ook uitmaken in welke sleuven je de modules met het meeste of minste geheugen plugt. Kortom, raadpleeg de handleiding bij je moederbord voor mogelijke locaties en combinaties.

Is het verwijderen of verplaatsen van modules geen optie, dan rest je alleen nog het vervangen van een module door een ander exemplaar. De gratis, portable tool RAMExpert geeft je de nodige informatie over de ingeplugde ram-modules. Zorg dat je bij zo’n vervangoperatie niet statisch geladen bent en gebruik bijvoorbeeld een antistatisch polsbandje.

Geschreven door: Toon van Daele op

Category: Nieuws

Tags: PC, tips, Geheugen, How To, Problemen, Oplossen, Ram