web-dev-qa-db-fra.com

Quelles sont les meilleures façons de comparer RAM (no-ECC) sous linux / arm?

Je veux tester l'intégrité et les performances globales des puces mémoire sans ECC sur une carte personnalisée

Existe-t-il des outils qui fonctionnent sous Linux pour que je puisse surveiller le système et la température globale en même temps?

Y a-t-il des tests spécifiques sans ECC à faire en général?

EDIT 1:

Je sais déjà comment surveiller la température (j'utilise une fonctionnalité de plate-forme spéciale /sys/devices/platform/......../temp1_input).

Pour l'instant :

  • wazoox: ça marche mais je dois coder mes propres tests
  • Jason Huntley:
    • ramspeed: ne fonctionne pas sur le bras
    • référence de flux: cela fonctionne et est très rapide, donc je vais vérifier si c'est précis et complet
    • memtest: je vais essayer plus tard, car il ne fonctionne pas directement depuis linux
    • stress pour Fedora: j'essaierai plus tard aussi, c'est trop problématique pour moi d'installer Fedora maintenant

J'ai trouvé cette distribution: http://www.stresslinux.org/sl/

Je continuerai à vérifier les outils qui s'exécutent directement sous linux sans trop grandes dépendances, après je vais peut-être essayer des solutions comme stresslinux, memtest, stress pour Fedora.

Merci pour vos réponses, je vais continuer à enquêter

20
moul

Voici comment je teste parfois le ram: montez d'abord deux tmpfs (par défaut, tmpfs est la moitié du ram):

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

Vérifiez la mémoire et l'espace libre:

# 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

Remplissez maintenant les tmpfs avec 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

Vous pouvez vérifier que votre mémoire est effectivement assez pleine:

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

Vous pouvez maintenant exécuter divers tests, par exemple vérifier que les deux fichiers temporaires sont identiques, directement ou en exécutant md5sum, sha1sum, etc.:

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

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

Concernant la surveillance de la température, je ne connais que les capteurs lm. Je ne sais pas s'il gère votre matériel particulier, mais vous pourriez probablement essayer de toute façon.

13
wazoox

Quelles sont les meilleures façons de comparer RAM (no-ECC) sous linux/arm?

RamSpeed ​​est le seul outil de référence de mémoire multiplateforme que je connaisse. Vous pourrez peut-être le compiler pour arm, s'il est pris en charge:

http://alasir.com/software/ramspeed/ , l'ancien lien est mort, utilisez:

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

Si ce n'est pas pris en charge, vous pourrez peut-être comparer en utilisant stream:

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

veulent tester l'intégrité et les performances globales des puces de mémoire sans ECC sur une carte personnalisée

Ici, j'ai utilisé memtest à plusieurs reprises pour le contrôle d'intégrité et cela fonctionne très bien:

http://www.memtest.org/

* Remarque, je n'ai lu que cela prend en charge Arm. Cependant, je n'ai pas testé sur un bras.

Existe-t-il des outils qui fonctionnent sous Linux pour que je puisse surveiller le système et la température globale en même temps?

Si la distribution que vous utilisez prend en charge yum, vous pouvez facilement installer lm_sensors:

yum install lm_sensors

Vous pouvez également télécharger et compiler à partir de: ici http://www.lm-sensors.org/

Cependant, je ne suis pas certain qu'il fournira des données de température concernant votre mémoire. Votre carte mère doit également avoir des capteurs pour lire la température mem.

Y a-t-il des tests spécifiques sans ECC à faire en général?

memtest comprend des tests pour ECC et non ECC

Je viens juste de me souvenir d'une dernière chose que vous pourriez essayer. Obtenez Fedora pour l'architecture de bras ou le rpm. Vous pouvez exécuter le package de stress qui testera votre CPU et votre mémoire:

stress-1.0.4-4.fc13.armv5tel.rpm

Si la boîte occupée contient un programme d'installation rpm, vous pourrez peut-être déployer l'un des rpms de bras de la distribution Fedora.

7
Jason Huntley

Écrivez un fichier dans un tmpfs existant comme/tmp avec dd comme le suggère wazoox, mais limitez sa taille à moins de la moitié de votre mémoire libre.

Tout d'abord, découvrez la quantité de mémoire disponible:

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

Ensuite, écrivez un fichier, dans ce cas 4 Go au total en utilisant 4000 blocs de 1 Mo:

> 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

De cette façon, vous éviterez l'échange et il n'est pas nécessaire de monter quoi que ce soit.

1
baldrianbandit

J'ai utilisé le memtest de u-boot, il y a deux tests (voir u-boot/common/cmd_mem.c):

Le premier test est simple (écriture, vérification), le deuxième test est activé par #define CONFIG_SYS_ALT_MEMTEST 1 et ajouter d'autres tests,

prenez soin de passer un décalage de démarrage (argv [1]) après l'espace mémoire u-boot, c'est-à-dire mtest 0x200000.

0
moul