在 linux/arm 下对 RAM(无 ECC)进行基准测试的最佳方法是什么?

mou*_*oul 22 linux memory arm benchmark

我想在定制板上测试 no-ECC 内存芯片的完整性和全局性能

是否有一些工具可以在 linux 下运行,以便我可以同时监控系统和全球温度?

一般是否有一些无 ECC 特定的测试要做?

编辑 1:

我已经知道如何监控温度(我使用了一个特殊的平台功能 /sys/devices/platform/......../temp1_input)。

目前 :

  • wazoox :它有效,但我必须编写自己的测试
  • 杰森亨特利:
    • ramspeed : 不适用于手臂
    • 流基准:它工作并且非常快,所以我会看看它是否准确和完整
    • memtest :我稍后再试,因为它不直接从 linux 运行
    • Fedora的压力:我稍后也会尝试,现在安装fedora对我来说太成问题了

我找到了这个发行版:http : //www.stresslinux.org/sl/

我会继续检查直接在linux下运行的工具,没有太大的依赖,之后我可能会尝试解决stresslinux,memtest,stress for fedora之类的解决方案。

谢谢你的回答,我会继续调查

waz*_*oox 14

这是我有时测试 ram 的方式:首先挂载两个 tmpfs(默认 tmpfs 是 ram 的一半):

# mount -t tmpfs /mnt/test1 /mnt/test1
# mount -t tmpfs /mnt/test2 /mnt/test2
Run Code Online (Sandbox Code Playgroud)

检查可用内存和可用空间:

# 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
Run Code Online (Sandbox Code Playgroud)

现在用 dd 填充 tmpfs:

# 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
Run Code Online (Sandbox Code Playgroud)

您可以检查您的内存实际上是否已满:

# free
             total       used       free     shared    buffers     cached
Mem:        252076     248824       3252          0       1156     226380
-/+ buffers/cache:      21288     230788
Swap:      1048820      50020     998800
Run Code Online (Sandbox Code Playgroud)

现在您可以运行各种测试,例如直接检查两个临时文件是否相同或运行 md5sum、sha1sum 等:

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

real    0m4.328s
user    0m0.041s
sys     0m1.117s
Run Code Online (Sandbox Code Playgroud)

关于温度监测,我只知道lm-sensors。我不知道它是否管理您的特定硬件,但无论如何您都可以尝试一下。

  • 这个基准测试会受到 CPU 缓存的影响,但这是一个好主意。 (4认同)
  • 我在一个简单的 bash 脚本中对此进行了调整,用于对 VPS 提供商进行基准测试 - https://bitbucket.org/snippets/danielsokolowski/G5oeA (3认同)
  • 没有测试自己,但 Mircea 可能是对的:所以我会“echo 3 > /proc/sys/vm/drop_caches”来释放页面缓存、dentries 和 inode,应该这样做。 (2认同)

Jas*_*ley 8

在 linux/arm 下对 RAM(无 ECC)进行基准测试的最佳方法是什么?

RamSpeed 是我所知道的唯一的多平台内存基准测试工具。如果支持,您也许可以为 arm 编译它:

http://alasir.com/software/ramspeed/ ,旧链接已死,请使用:

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

如果不支持,您可以使用流进行基准测试:

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

想要在定制板上测试无 ECC 内存芯片的完整性和全局性能

在这里,我曾多次使用 memtest 进行完整性检查,并且效果很好:

http://www.memtest.org/

*注意,我只读过这篇支持 Arm。但是,我还没有在 Arm 上进行测试。

是否有一些工具可以在 linux 下运行,以便我可以同时监控系统和全球温度?

如果您使用的发行版支持 yum,您可以轻松安装 lm_sensors:

yum 安装 lm_sensors

你也可以从这里下载和编译:http : //www.lm-sensors.org/

但是,我不确定它是否会提供有关您的内存的温度数据。您的主板还必须具有用于读取内存温度的传感器。

一般是否有一些无 ECC 特定的测试要做?

memtest 确实包括针对 ECC 和非 ECC 的测试

我只记得你可以尝试的最后一件事。获取用于 arm 架构或 rpm 的 fedora。您可以运行压力包来对您的 CPU 和内存进行压力测试:

压力1.0.4-4.fc13.armv5tel.rpm

如果busybox 附带了一个rpm 安装程序,您也许可以从fedora 发行版中部署其中一个arm rpm。