What are the best possible ways to benchmark RAM (no-ECC) under linux / arm?
I want to test integrity and global performances of no-ECC memory chips on a custom board
Are there some tools that run under linux so I can monitor system and global temperature in the same time ?
Are there some no-ECC specific tests to do in general ?
EDIT 1:
I already know how to monitor temperature (I use a special platform feature /sys/devices/platform/......../temp1_input).
For now :
- wazoox : it works but I've to code my own tests
- Jason Huntley :
- ramspeed : does not work on arm
- stream benchmark : it works and is very fast, so I'll look if it's accurate and complete
- memtest : I'll try later, since it does not run directly from linux
- stress for fedora : I'll try later too, it's too problematic for me to install fedora now
I found this distribution : http://www.stresslinux.org/sl/
I'll continue to check tools that run directly under linux without too big dependencies, after I'll maybe give a try to solutions like stresslinux, memtest, stress for fedora.
Thanks for you answers, I'll continue to investigate
Here's the way I sometimes test ram: first mount two tmpfs (by default tmpfs is half the ram):
# mount -t tmpfs /mnt/test1 /mnt/test1
# mount -t tmpfs /mnt/test2 /mnt/test2
Check free memory and free space:
# 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
Now fill the tmpfs with 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
You can check that your memory is actually quite full:
# free
total used free shared buffers cached
Mem: 252076 248824 3252 0 1156 226380
-/+ buffers/cache: 21288 230788
Swap: 1048820 50020 998800
Now you may run various tests, for instance check that both temp files are identical, directly or running md5sum, sha1sum, etc:
# time cmp /mnt/test1/test /mnt/test2/test
real 0m4.328s
user 0m0.041s
sys 0m1.117s
About temperature monitoring, I know only of lm-sensors. I don't know if it manages your particular hardware, but you probably could give it a try anyway.
What are the best possible ways to benchmark RAM (no-ECC) under linux / arm?
RamSpeed is the only multiplatform memory benchmark tool I'm aware of. You might be able to compile it for arm, if supported:
https://github.com/cruvolo/ramspeed-smp
If it's not supported, you might be able to benchmark using stream:
https://web.archive.org/web/20211104122453/http://www.cs.virginia.edu/stream/
want to test integrity and global performances of no-ECC memory chips on a custom board
Here, I've used memtest on many occasions for integrity checking and it works great:
http://www.memtest.org/
*Note, I've only read this supports Arm. However, I haven't tested on an Arm.
Are there some tools that run under linux so I can monitor system and global temperature in the same time ?
If the distribution you're using supports yum, you can easily install lm_sensors:
yum install lm_sensors
You can also download and compile from: here http://www.lm-sensors.org/
However, I'm not certain it will provide temperature data regarding your memory. Your motherboard also has to have sensors for reading mem temperature.
Are there some no-ECC specific tests to do in general ?
memtest does include tests for both ECC and non-ECC
I just remembered one last thing you could try. Get fedora for arm architecture or the rpm. You can run the stress package which will stress test your cpu and memory:
stress-1.0.4-4.fc13.armv5tel.rpm
If busybox has an rpm installer packaged with it, you might be able to deploy one of the arm rpms from the fedora distribution.