在Linux / Arm下对RAM(no-ECC)进行基准测试的最佳方法是什么?


19

我想在定制板上测试no-ECC存储器芯片的完整性和整体性能

是否有一些在Linux下运行的工具,以便我可以同时监视系统和全局温度?

通常是否有一些没有ECC的特定测试?

编辑1:

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

目前 :

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

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

在可能尝试过诸如StressLinux,Memtest,Fedora压力之类的解决方案之后,我将继续检查在Linux下直接运行且没有太大依赖性的工具。

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


如果您向我们提供您正在使用的Linux发行版,这将有所帮助。您正在运行服务器或桌面发行版吗?它包括XServer吗?
杰森·亨特利

我将Linux 3.0裸机与busybox配合使用,rootfs在nfs上,因此我使用臂交叉编译器从另一台主机编译工具。没有XServer。
穆尔

Answers:


13

这是我有时测试ram的方法:首先安装两个tmpfs(默认情况下,tmpfs是ram的一半):

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

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

# 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

现在用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

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

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

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

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

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

关于温度监控,我只知道lm传感器。我不知道它是否可以管理您的特定硬件,但是您仍然可以尝试一下。


4
此基准测试将受CPU缓存的影响,但这是一个好主意。
Mircea Vutcovici 2012年

2
没有测试我自己,但是Mircea可能是正确的:所以我会“回显3> / proc / sys / vm / drop_caches”以释放页面缓存,牙科和inode,这应该可以做到。
曼努埃尔

这些是文件系统缓存,而不是CPU缓存。
Mircea Vutcovici 2014年

1
+1此dd方法(在较旧的AMD Athlon 64 3200+上)为我提供了与内存时钟速度变化成正比的结果,我认为它足够好。但是不确定,为什么要用以下命令阻塞整个系统内存/dev/zero-当我尝试这样做时,系统冻结了。
Lumi

3
我已经在一个简单的bash脚本中对此进行了调整,我使用该脚本对VPS提供程序进行了基准测试-bitbucket.org/snippets/danielsokolowski/G5oeA
Daniel Sokolowski

7

在Linux / Arm下对RAM(no-ECC)进行基准测试的最佳方法是什么?

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

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

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

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

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

想要在定制板上测试no-ECC存储器芯片的完整性和整体性能

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

http://www.memtest.org/

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

是否有一些在Linux下运行的工具,以便我可以同时监视系统和全局温度?

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

百胜安装lm_sensors

您也可以从以下位置下载并编译:http : //www.lm-sensors.org/

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

通常是否有一些没有ECC的特定测试?

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

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

重音1.0.4-4.fc13.armv5tel.rpm

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


现在有趣的是RAMspeed链接如何重定向到垃圾网站。
Ciro Santilli新疆改造中心法轮功六四事件

是的,看起来他们的网站不见了,正在更新指向github的链接。
詹森·亨特利

1

按照wazoox的建议,将文件写入dd等现有的tmpfs中,但应将其大小限制为可用内存的一半以下。

首先,找出可用的内存量:

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

然后,使用4000个1MB的块写入一个文件,在本例中为4GB:

> 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

这样,您将避免交换,并且无需挂载任何东西。


似乎有人为地限制了tmpfs我的RHEL6 / 7计算机的速度。无论是在四通道DDR3-1866机器,四通道DDR4-2666机器还是仅填充两个内存通道的同一台机器上运行此命令,我都会获得与您相同的4GB / s。这些应分别以60、85和42GB / s的速度写入内存,而不是4GB / s。
Mark Booth '18

dd可能只是以恒定的等待间隔进行循环,因此限制了整个动作的速度。尝试另一种方法:dd if = / dev / zero of = / tmp / testfile bs = 4000M count = 1
baldrianbandit

这很奇怪,我尝试了多种bscounts方式,并且最佳组合是,bs=512K但在提供STREAM基准的43GB / s的机器上,它从未超过4.2GB / s。
Mark Booth,

0

我使用了u-boot的memtest,有两个测试(请参阅u-boot / common / cmd_mem.c):

第一个测试很简单(写,检查),第二个测试由激活#define CONFIG_SYS_ALT_MEMTEST 1并添加了更多测试,

请注意在u-boot内存空间(即)之后传递起始偏移量(argv [1])mtest 0x200000

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.