it-swarm.com.de

Wie interpretiere ich die Statistik eines Memtestlaufs?

Ich habe hier ein Notebook, von dem ich vermute, dass es ein fehlerhaftes Speichermodul hat. Ich habe daher Memtest86 + heruntergeladen und laufen lassen.

Beachten Sie, dass der Screenshot nicht mein eigentlicher Screenshot ist, sondern von memtest86 + bereitgestellt wird

memtest

Wie interpretiere ich die Zahlen auf dem Bildschirm? Ich habe es ungefähr vier Stunden laufen lassen und jetzt bin ich in Pass 7.

Vor allem, was macht

  • die Testnummer
  • die Anzahl der Fehler
  • die Anzahl der ECC-Fehler

zeigen? Was sind vernünftige Werte für Speicherfehler? Wann sollte ich in Betracht ziehen, den Speicher zu ersetzen?

63
slhck

TL; DR

Die wichtigste Zahl zuerst: Die Fehleranzahl für ein fehlerfreies Gedächtnis sollte 0 sein . Jede Zahl über 0 kann auf beschädigte/fehlerhafte Sektoren hinweisen.


Bildschirmerklärung

     Memtest86+ v1.00      | Progress of the entire pass (test series)
CPU MODEL and clock speed  | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.

WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors  ECC Errs
---------  ------  -------  --------  -----  ---  ----  ----  ------  --------
Elapsed    Amount  Amount    Mapping  on     on   Test  # of  # of    # of ECC
time       of RAM  of        used     or     or   type  pass  errors  errors
           cached  reserved           off    off        done  found   found
                   RAM, not
                   tested

Daten/Testerklärung

MemTest führt eine Reihe von Tests durch, schreibt spezifische Muster in jeden Sektor des Speichers und ruft ihn ab. Wenn sich die abgerufenen Daten von den ursprünglich gespeicherten Daten unterscheiden, registriert MemTest einen Fehler und erhöht die Fehleranzahl um eins. Fehler sind normalerweise Anzeichen für fehlerhafte RAM Streifen.

Da der Speicher nicht nur ein Notizblock ist, der Informationen enthält, sondern über erweiterte Funktionen wie das Zwischenspeichern verfügt, werden verschiedene Tests durchgeführt. Dies zeigt derTest #an. MemTest führt eine Reihe verschiedener Tests durch, um festzustellen, ob Fehler auftreten.

Einige (vereinfachte) Testbeispiele:

  • Testsektoren in dieser Reihenfolge: A, B, C, D, E, F. (seriell)
  • Testsektoren in dieser Reihenfolge: A, C, E, B, D, F. (in Bewegung)
  • Fülle alle Sektoren mit Muster: aaaaaaaa
  • Fülle alle Sektoren mit einem zufälligen Muster.

Detaillierte Beschreibung aller Tests von: https://www.memtest86.com/technical.htm#detailed

Test 0 [Adressentest, Laufende, kein Cache]

Testet alle Adreßbits in allen Speicherbänken unter Verwendung eines laufenden Adreßmusters.

Test 1 [Adresstest, eigene Adresse, sequentiell]

Jede Adresse wird mit einer eigenen Adresse geschrieben und anschließend auf Konsistenz überprüft. In der Theorie sollten frühere Tests Probleme mit der Speicheradressierung festgestellt haben. Dieser Test sollte alle Adressierungsfehler erkennen, die zuvor nicht erkannt wurden. Dieser Test wird nacheinander mit jeder verfügbaren CPU durchgeführt.

Test 2 [Adresstest, eigene Adresse, Parallel]

Wie Test 1, aber der Test wird parallel mit allen CPUs und überlappenden Adressen durchgeführt.

Test 3 [Verschieben von Inversionen, Einsen und Nullen, sequentiell]

Dieser Test verwendet den Moving-Inversions-Algorithmus mit Mustern aller Einsen und Nullen. Der Cache ist aktiviert, obwohl er den Testalgorithmus bis zu einem gewissen Grad beeinträchtigt. Bei aktiviertem Cache dauert dieser Test nicht lange und sollte schnell alle "harten" Fehler und einige subtilere Fehler finden. Dieser Test ist nur eine kurze Überprüfung. Dieser Test wird nacheinander mit jeder verfügbaren CPU durchgeführt.

Test 4 [Verschieben von Inversionen, Einsen und Nullen, Parallel]

Wie Test 3, jedoch werden alle CPUs parallel getestet.

Test 5 [Inversionen verschieben, 8 Bit pat]

Dies ist dasselbe wie bei Test 4, verwendet jedoch ein 8 Bit breites Muster aus "laufenden" Einsen und Nullen. Dieser Test erkennt subtile Fehler in "breiten" Speicherchips besser.

Test 6 [Inversionen verschieben, Zufallsmuster]

Test 6 verwendet den gleichen Algorithmus wie Test 4, aber das Datenmuster ist eine Zufallszahl und dessen Komplement. Dieser Test ist besonders effektiv, wenn es darum geht, datenempfindliche Fehler nur schwer zu erkennen. Die Zufallszahlenfolge ist bei jedem Durchgang unterschiedlich, sodass mehrere Durchgänge die Effektivität erhöhen.

Test 7 [Blockzug, 64 Züge]

Dieser Test beansprucht das Gedächtnis mit Hilfe von Movsl-Befehlen (Block Move) und basiert auf dem BurnBX-Test von Robert Redelmeier. Der Speicher wird mit Schiebemustern initialisiert, die alle 8 Bytes invertiert werden. Dann werden 4 MB Speicherblöcke mit dem Befehl movsl verschoben. Nach Abschluss der Verschiebungen werden die Datenmuster überprüft. Da die Daten erst nach dem Verschieben des Speichers überprüft werden, kann nicht festgestellt werden, wo der Fehler aufgetreten ist. Die angegebenen Adressen gelten nur für den Ort, an dem das fehlerhafte Muster gefunden wurde. Da die Verschiebungen auf ein Speichersegment von 8 MB beschränkt sind, ist die fehlerhafte Adresse immer weniger als 8 MB von der angegebenen Adresse entfernt. Fehler aus diesem Test werden nicht zur Berechnung von BadRAM-Mustern verwendet.

Test 8 [Inversionen verschieben, 32 Bit pat]

Dies ist eine Variation des Moving-Inversions-Algorithmus, der das Datenmuster für jede aufeinanderfolgende Adresse um ein Bit nach links verschiebt. Die Startbitposition wird bei jedem Durchgang nach links verschoben. Um alle möglichen Datenmuster zu nutzen, sind 32 Durchgänge erforderlich. Dieser Test ist sehr effektiv bei der Erkennung datenempfindlicher Fehler, aber die Ausführungszeit ist lang.

Test 9 [Zufallszahlenfolge]

Dieser Test schreibt eine Reihe von Zufallszahlen in den Speicher. Durch Zurücksetzen des Startwerts für die Zufallszahl kann dieselbe Zahlenfolge für eine Referenz erstellt werden. Das anfängliche Muster wird geprüft und dann beim nächsten Durchgang ergänzt und erneut geprüft. Im Gegensatz zu den sich bewegenden Inversionen kann der Test jedoch nur in Vorwärtsrichtung geschrieben und geprüft werden.

Test 10 [Modulo 20, Einsen & Nullen]

Die Verwendung des Modulo-X-Algorithmus sollte Fehler aufdecken, die durch das Verschieben von Inversionen aufgrund von Cache- und Pufferinterferenzen mit dem Algorithmus nicht erkannt werden. Wie bei Test Eins werden für Datenmuster nur Einsen und Nullen verwendet.

Test 11 [Bitüberblendungstest, 90 min, 2 Muster]

Der Bit-Fade-Test initialisiert den gesamten Speicher mit einem Muster und wartet dann 5 Minuten. Anschließend wird der Speicher überprüft, um festzustellen, ob sich Speicherbits geändert haben. Es werden alle Einsen und alle Nullmuster verwendet.

Da fehlerhafte Sektoren manchmal funktionieren und ein anderes Mal nicht funktionieren, empfehle ich, MemTest einige Durchgänge ausführen zu lassen. Ein vollständiges bestanden ist eine abgeschlossene Testreihe, die bestanden wurde. (Die obigen Testreihen 1-11) Je mehr Pässe Sie fehlerfrei erhalten, desto genauer ist Ihr MemTest-Lauf. Ich laufe normalerweise ungefähr 5 Pässe, um sicher zu sein.

Die Fehleranzahl für fehlerfreien Speicher sollte 0 sein. Jede Zahl über 0 kann auf beschädigte/fehlerhafte Sektoren hinweisen.

ECC-Fehleranzahl sollte nur berücksichtigt werden, wenn ECC auf off gesetzt ist. ECC steht für Error-Correcting Code Memory und ist ein Mechanismus zum Erkennen und Korrigieren falscher Bits in einem Speicherzustand. Dies kann leicht mit den Paritätsprüfungen verglichen werden, die auf RAID- oder optischen Medien durchgeführt wurden. Diese Technologie ist recht teuer und wird wahrscheinlich nur in Server-Setups anzutreffen sein. Die ECC-Zählung zählt, wie viele Fehler durch den ECC-Mechanismus des Speichers korrigiert wurden. ECC muss nicht für einen fehlerfreien Arbeitsspeicher aufgerufen werden, daher kann eine ECC-Fehleranzahl über 0 auch auf einen fehlerhaften Arbeitsspeicher hinweisen.


Fehlererklärung

Beispiel für Memtest, bei dem Fehler aufgetreten sind. Es zeigt, welcher Sektor/welche Adresse ausgefallen ist.

Memtest screen with errors

Die erste Spalte ( Tst ) zeigt, welcher Test fehlgeschlagen ist, die Nummer entspricht der Testnummer aus der oben bereits genannten Liste. Die zweite Spalte ( Pass ) zeigt, ob der Test hat bestanden wurde. Im Fall des Beispiels besteht Test 7 nicht.

Die dritte Spalte ( Failing Address ) zeigt genau, welcher Teil des Speichers fehlerhaft ist. Ein solcher Teil hat eine Adresse, ähnlich einer IP-Adresse, die für diesen Datenspeicher eindeutig ist. Es wird angezeigt, welche Adresse fehlgeschlagen ist und wie groß der Datenblock ist. (0,8 MB im Beispiel)

Die vierte ( Gut ) und fünfte ( Schlecht ) Spalte zeigen die geschriebenen und die abgerufenen Daten an. Beide Spalten sollten im nicht fehlerhaften Speicher (offensichtlich) gleich sein.

Die sechste Spalte ( Err-Bits ) zeigt die Position der exakten fehlgeschlagenen Bits.

Die siebte Spalte ( Count ) zeigt die Anzahl aufeinanderfolgender Fehler mit derselben Adresse und fehlerhaften Bits.

Schließlich zeigt die letzte Spalte sieben ( Chan ) den Kanal (wenn mehrere Kanäle im System verwendet werden), in dem sich der Speicherstreifen befindet.


Wenn es Fehler findet

Wenn MemTest Fehler entdeckt, wird die beste Methode zum Ermitteln des fehlerhaften Moduls in dieser Superuser-Frage und der akzeptierten Antwort beschrieben:

Verwenden Sie den Eliminierungsprozess - entfernen Sie die Hälfte der Module und führen Sie den Test erneut aus ...

Wenn es keine Fehler gibt, wissen Sie, dass diese beiden Module in Ordnung sind. Legen Sie sie beiseite und testen Sie sie erneut.

Wenn es Fehler gibt, reduzieren Sie diese erneut auf die Hälfte (jetzt auf eines von vier Speichermodulen) und testen Sie sie erneut.

Aber nur, weil einer der Tests fehlgeschlagen ist, sollten Sie nicht davon ausgehen, dass der andere nicht fehlschlägt (Sie könnten zwei fehlerhafte Speichermodule haben). Wenn Sie einen Fehler mit zwei Speichermodulen festgestellt haben, testen Sie diese beiden anschließend einzeln .

Wichtiger Hinweis: Mit Funktionen wie Memory Interleaving und unzureichenden Nummerierungsschemata für Speichermodulsockel einiger Motherboard-Hersteller kann es schwierig sein, zu ermitteln, welches Modul durch eine bestimmte Adresse dargestellt wird.

80
BloodPhilia

Testnummer: Die Nummer des spezifischen Tests, den memtest gerade ausführt. Da sind viele von denen.

Anzahl der Fehler: Die Anzahl der aufgetretenen Speicherfehler

ECC-Fehler: Anzahl der vom ECC korrigierten Fehler. Ihr Chipsatz/Speicher verfügt nicht über ECC, daher spielt diese Nummer keine Rolle.

Wenn Ihr Speicher eine Anzahl von Fehlern über 0 aufweist, möchten Sie ihn ersetzen.

BEARBEITEN: Die Tests sind die verschiedenen Muster, die memtest in den Speicher schreibt. Es schreibt verschiedene Muster in den Speicher und liest sie zurück, um auf Fehler zu prüfen, und es verwendet verschiedene Muster, um in der Lage zu sein, alle Zustände aller Bits zu testen.

Die Anzahl gibt an, wie oft das in memtest zurückgelesene Ergebnis nicht dem entspricht, was es in den Speicher geschrieben hat. Dies bedeutet, dass ein Fehler im getesteten Speicherblock vorliegt.

ECC ist eine in Speicherchips für Server und Workstations integrierte Fehlerkorrekturtechnologie. Die meisten Dekstops unterstützen keine Speichermodule mit integriertem ECC. Fast alle Server/Workstations unterstützen dies und erfordern dies normalerweise. Die Anzahl der von ECC korrigierten Fehler entspricht der Anzahl der Fehler, die der ECC-Chip erfolgreich behoben hat.

6
Eli

Anzahl der Fehler

Wenn beim Durchlaufen der Tests der Speicher für einen der Tests ausfällt, wird die Anzahl der Fehler erhöht. Wenn ich mich richtig erinnere, zählt es die Anzahl der Adressen, die den Test nicht bestanden haben.

Anzahl der ECC-Fehler

ECC-Speicher ist eine spezielle Art von Speicherchip, mit dem verhindert wird, dass Daten beschädigt werden. Ihre Spalte ECC Errs zählt, wie viele Probleme von ECC behoben wurden.

(ECC ist langsam und teuer und im Grunde genommen für unternehmenskritische Systeme gedacht, bei denen kein Austausch von RAM erforderlich ist.)

Testnummer

Memtest führt verschiedene Arten von Tests für Ihr Gedächtnis durch, die auf der Memtest86 - Website beschrieben sind. Nur so eine kurze, einfache englische Übersetzung:

Test 0: Gehender Adressentest

Memtest schreibt 00000001 in den ersten Speicherort, 00000010 in den nächsten usw. und wiederholt dieses Muster alle 8 Bytes. Dann liest es den Speicher und stellt sicher, dass sich der Wert nicht geändert hat. ( Quelle )

Test 1 & 2: Eigene Adresse Adressentest

Memtest schreibt jeden Speicherort mit einer eigenen Adresse und prüft, ob sich der Wert nicht geändert hat.

Test 1 ist sequentiell und Test 2 ist parallel (d. H. Verwendet Parallelität).

Test 3 & 4 Moving Inversions Test

Im Wesentlichen lädt dieser Test 0s in den Speicher und dann

  1. nimmt jeden Speicherort (beginnend mit dem ersten/niedrigsten Speicherort),
  2. und schreibt die Umkehrung des Musters (ich würde glauben, es ist ein bitweises NICHT, aber ich konnte keine Dokumentation dazu finden).

Das Ziel hier ist, zu versuchen, jedes Bit und seine benachbarten Bits "jede mögliche Kombination von 0en und 1en" zu testen.

Test 3 verwendet keine Parallelität, während Test 4 dies tut.

Test 5: Verschieben von Inversionen, 8-Bit-Pat

Dies führt die Moving-Inversions-Methode erneut aus, diesmal jedoch mit der laufenden 1 von Test 0 in 8-Bit-Blöcken.

Test 6: Inversionen verschieben, Zufallsmuster

Memtest verwendet Zufallszahlen anstelle aller Nullen oder laufenden Einsen.

Test 7: Blockbewegung

Das macht Spaß. Es lädt Muster in den Speicher, verschiebt sie in Blöcken von 4 MB und überprüft sie.

Test 8: Moving Inversion, 32-Bit-Pat

Entspricht Test 5, verwendet jedoch stattdessen 32-Bit-Blöcke. Dieser lädt tatsächlich jeden möglichen 32-Bit-Wert an jedem Ort.

Test 9: Zufallszahlen

Dieser lädt Pseudo-Zufallszahlen in den Speicher und überprüft. Das Coole am Pseudozufallszahlengenerator ist, dass er nicht sehr zufällig ist (wenn Sie jemals printf("%d", Rand()); in einem C-Programm ausgeführt haben, ohne die ach so zufällige Zahl 41 zu setzen, wissen Sie, was ich meine). Dies wird überprüft, indem die Zufallszahlensämaschine zurückgesetzt und der Generator erneut gestartet wird.

Test 10: Modulo-X

Alle 20 Stellen schreibt es ein Muster (alle 0en oder alle 1en) und schreibt das Komplement an allen anderen Stellen und überprüft es dann.

Test 11: Bit-Fade-Test

Dieser lädt das RAM mit allen Einsen (und erneut mit allen Nullen), wartet 5 Minuten und prüft, ob sich einer der Werte ändert.

6
digitxp