Was sind die besten Möglichkeiten, um RAM (no-ECC) unter Linux / Arm zu vergleichen?

19

Ich möchte die Integrität und die globale Leistung von No-ECC-Speicherchips auf einer benutzerdefinierten Karte testen

Gibt es einige Tools, die unter Linux ausgeführt werden, damit ich System- und globale Temperatur gleichzeitig überwachen kann?

Gibt es im Allgemeinen einige No-ECC-spezifische Tests?

EDIT 1:

Ich weiß bereits, wie man die Temperatur überwacht (ich verwende eine spezielle Plattformfunktion /sys/devices/platform/......../temp1_input).

Zur Zeit :

  • wazoox: es funktioniert aber ich muss meine eigenen tests programmieren
  • Jason Huntley:
    • Ramspeed: Funktioniert nicht am Arm
    • Stream-Benchmark: Es funktioniert und ist sehr schnell, daher werde ich prüfen, ob es korrekt und vollständig ist
    • memtest: Ich versuche es später, da es nicht direkt unter Linux läuft
    • stress für fedora: ich versuche es später auch, es ist zu problematisch für mich, fedora jetzt zu installieren

Ich fand diese Distribution: http://www.stresslinux.org/sl/

Ich werde weiterhin Tools prüfen, die direkt unter Linux ohne zu große Abhängigkeiten laufen, nachdem ich vielleicht Lösungen wie stresslinux, memtest, stress for fedora ausprobiert habe.

Vielen Dank für Ihre Antworten, ich werde weiter nachforschen

moul
quelle
Es wäre hilfreich, wenn Sie uns die Linux-Distribution zur Verfügung stellen, mit der Sie arbeiten. Führen Sie eine Server- oder Desktop-Distribution aus? Beinhaltet es XServer?
Jason Huntley
Ich verwende Bare-Metal-Linux 3.0 mit busybox, rootfs ist auf nfs, also kompiliere ich Tools von einem anderen Host mit einem Arm-Cross-Compiler. Es gibt keinen XServer.
Moul

Antworten:

13

So teste ich manchmal RAM: Mounten Sie zuerst zwei tmpfs (standardmäßig ist tmpfs die Hälfte des RAMs):

# mount -t tmpfs /mnt/test1 /mnt/test1
# mount -t tmpfs /mnt/test2 /mnt/test2

Überprüfen Sie den freien Speicher und den freien Speicherplatz:

# free
             total       used       free     shared    buffers     cached
Mem:        252076     234760      17316          0      75856      62328
-/+ buffers/cache:      96576     155500
Swap:      1048820        332    1048488

# df -h -t tmpfs
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
tmpfs                 124M     0  124M   0% /lib/init/rw
udev                   10M  104K  9,9M   2% /dev
tmpfs                 124M     0  124M   0% /dev/shm
/mnt/test1            124M     0  124M   0% /mnt/test1
/mnt/test2            124M     0  124M   0% /mnt/test2

Füllen Sie nun die tmpfs mit dd:

# dd if=/dev/zero of=/mnt/test1/test bs=1M 
dd: écriture de `/mnt/test1/test': Aucun espace disponible sur le périphérique
123+0 enregistrements lus
122+0 enregistrements écrits
128802816 octets (129 MB) copiés, 1,81943 seconde, 70,8 MB/s

# dd if=/dev/zero of=/mnt/test2/test bs=1M 
dd: écriture de `/mnt/test2/test': Aucun espace disponible sur le périphérique
123+0 enregistrements lus
122+0 enregistrements écrits
128802816 octets (129 MB) copiés, 5,78563 seconde, 22,3 MB/s

Sie können überprüfen, ob Ihr Speicher tatsächlich voll ist:

# free
             total       used       free     shared    buffers     cached
Mem:        252076     248824       3252          0       1156     226380
-/+ buffers/cache:      21288     230788
Swap:      1048820      50020     998800

Jetzt können Sie verschiedene Tests ausführen, zum Beispiel überprüfen, ob beide temporären Dateien identisch sind, direkt oder mit md5sum, sha1sum usw.:

# time cmp /mnt/test1/test /mnt/test2/test 

real    0m4.328s
user    0m0.041s
sys     0m1.117s

Über Temperaturüberwachung kenne ich mich nur mit lm-Sensoren aus. Ich weiß nicht, ob es Ihre bestimmte Hardware verwaltet, aber Sie könnten es wahrscheinlich trotzdem versuchen.

Wazoox
quelle
4
Dieser Benchmark wird durch den CPU-Cache beeinflusst, es ist jedoch eine gute Idee.
Mircea Vutcovici
2
Ich habe mich nicht getestet, aber Mircea hat wahrscheinlich Recht: Also würde ich "Echo 3> / proc / sys / vm / drop_caches" verwenden, um Pagecaches, Einträge und Inodes freizugeben, das sollte es tun.
Manuel
Dies sind Dateisystem-Caches, keine CPU-Caches.
Mircea Vutcovici
1
+1 Diese ddMethode (auf einem alten AMD Athlon 64 3200+) hat zu Ergebnissen geführt, die konstant proportional zu Änderungen der Speichertaktrate sind, was meiner Meinung nach gut genug ist. /dev/zeroIch bin mir jedoch nicht sicher, warum Sie den gesamten Systemspeicher verstopfen möchten - mein System ist beim Versuch, dies zu tun, eingefroren.
Lumi
3
Ich habe dies in einem einfachen Bash-Skript angepasst, mit dem ich VPS-Anbieter vergleiche - bitbucket.org/snippets/danielsokolowski/G5oeA
Daniel Sokolowski
7

Was sind die besten Möglichkeiten, um RAM (no-ECC) unter Linux / Arm zu vergleichen?

RamSpeed ​​ist das einzige mir bekannte Multiplattform-Speicher-Benchmark-Tool. Möglicherweise können Sie es für arm kompilieren, wenn dies unterstützt wird:

http://alasir.com/software/ramspeed/ , alter Link ist tot, verwenden Sie:

https://github.com/cruvolo/ramspeed-smp

Wenn dies nicht unterstützt wird, können Sie möglicherweise mithilfe von Streams ein Benchmarking durchführen:

http://www.cs.virginia.edu/stream/ref.html

Integrität und globale Leistung von No-ECC-Speicherchips auf einer benutzerdefinierten Karte testen möchten

In diesem Fall habe ich memtest mehrfach zur Integritätsprüfung verwendet und es funktioniert hervorragend:

http://www.memtest.org/

* Hinweis, ich habe nur gelesen, dass dies Arm unterstützt. Ich habe jedoch noch keinen Arm getestet.

Gibt es einige Tools, die unter Linux ausgeführt werden, damit ich System- und globale Temperatur gleichzeitig überwachen kann?

Wenn die Distribution, die Sie verwenden, yum unterstützt, können Sie lm_sensors einfach installieren:

yum install lm_sensors

Sie können auch herunterladen und kompilieren von: hier http://www.lm-sensors.org/

Ich bin mir jedoch nicht sicher, ob es Temperaturdaten zu Ihrem Speicher liefert. Ihr Motherboard muss auch Sensoren zum Ablesen der Mem-Temperatur haben.

Gibt es im Allgemeinen einige No-ECC-spezifische Tests?

memtest beinhaltet Tests sowohl für ECC als auch für Nicht-ECC

Ich erinnerte mich nur an eine letzte Sache, die Sie versuchen konnten. Holen Sie sich Fedora für Armarchitektur oder die Drehzahl. Sie können das Stresspaket ausführen, mit dem Ihre CPU und Ihr Arbeitsspeicher einem Stresstest unterzogen werden:

stress-1.0.4-4.fc13.armv5tel.rpm

Wenn im Lieferumfang von busybox ein RPM-Installationsprogramm enthalten ist, können Sie möglicherweise eines der Arm-RPMs aus der Fedora-Distribution bereitstellen.

Jason Huntley
quelle
Interessant, wie der RAMspeed-Link jetzt auf spammige Websites umleitet.
Ciro Santilli am
yep, sieht aus wie ihre Website ist weg und aktualisiert den Link zu Github.
Jason Huntley
1

Schreiben Sie eine Datei in ein vorhandenes tmpfs wie / tmp mit dd, wie von wazoox vorgeschlagen, aber beschränken Sie die Größe auf weniger als die Hälfte Ihres freien Speichers.

Stellen Sie zunächst fest, wie viel Speicher verfügbar ist:

> free -h                                                                       
              total        used        free      shared  buff/cache  available 
Mem:            15G        3.0G         11G        540M        1.0G         11G 
Swap:            9G        1.2M          9G                                     

Dann schreiben Sie eine Datei, in diesem Fall 4 GB insgesamt mit 4000 Blöcken von 1 MB:

> dd if=/dev/zero of=/tmp/testfile bs=1M count=4000 
4000+0 records in
4000+0 records out
4194304000 bytes (4.2 GB, 3.9 GiB) copied, 1.1395 s, 3.7 GB/s

Auf diese Weise vermeiden Sie das Vertauschen und müssen nichts anbringen.

Baldrianbandit
quelle
Irgendetwas scheint die Geschwindigkeit tmpfsmeiner RHEL6 / 7-Maschinen künstlich zu begrenzen . Ich erhalte die gleichen 4 GB / s wie Sie, unabhängig davon, ob ich diesen Befehl auf einem Vierkanal-DDR3-1866-Computer, einem Vierkanal-DDR4-2666-Computer oder demselben Computer mit nur zwei bestückten Speicherkanälen ausführe. Diese sollten mit 60, 85 und 42 GB / s in den Speicher geschrieben werden, nicht mit 4 GB / s.
Mark Booth
Vielleicht macht dd nur Schleifen mit einem konstanten Warteintervall und begrenzt so die Geschwindigkeit der gesamten Aktion. Versuchen Sie es anders herum: dd if = / dev / zero von = / tmp / testfile bs = 4000M count = 1
baldrianbandit
Es ist sehr seltsam, ich habe mit einer Vielzahl von bsund versucht countund die beste Kombination war mit, bs=512Kaber es geht nie über 4,2 GB / s auf einer Maschine, die 43 GB / s mit dem STREAM-Benchmark gibt.
Mark Booth
0

Ich habe den memtest von u-boot verwendet, es gibt zwei Tests (siehe u-boot / common / cmd_mem.c):

Der erste Test ist einfach (Schreiben, Prüfen), der zweite Test wird durch aktiviert #define CONFIG_SYS_ALT_MEMTEST 1und fügt weitere Tests hinzu.

Achten Sie darauf, dass nach dem U-Boot-Speicherplatz ein Start-Offset (argv [1]) übergeben wird, d mtest 0x200000. h .

moul
quelle