我想在定制主板上测试无 ECC 内存芯片的完整性和整体性能
是否有一些可以在 Linux 下运行的工具,以便我可以同时监控系统和全局温度?
一般来说,是否有一些非 ECC 特定的测试可做?
编辑1:
我已经知道如何监控温度(我使用特殊的平台功能 /sys/devices/platform/......../temp1_input)。
目前 :
- wazoox :它可以工作,但我必须编写自己的测试
- 杰森·亨特利:
- ramspeed :在 arm 上不起作用
- 流基准测试:它运行良好,速度非常快,所以我会看看它是否准确和完整
- memtest:我稍后会尝试,因为它不能直接从 linux 运行
- fedora 的压力:我稍后也会尝试,现在安装 fedora 对我来说太麻烦了
我发现了这个分布:http://www.stresslinux.org/sl/
我将继续检查那些直接在 Linux 下运行而没有太大依赖性的工具,之后我可能会尝试诸如 Stresslinux、memtest、Fedora 的 Stress 之类的解决方案。
谢谢你的回答,我会继续调查
答案1
这是我有时测试 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-sensors。我不知道它是否能管理你的特定硬件,但无论如何你都可以尝试一下。
答案2
在 Linux / Arm 下对 RAM(无 ECC)进行基准测试的最佳方法是什么?
RamSpeed 是我所知道的唯一一款多平台内存基准测试工具。如果支持,您可能能够为 arm 编译它:
https://github.com/cruvolo/ramspeed-smp
如果不支持,您可能能够使用流进行基准测试:
https://web.archive.org/web/20211104122453/http://www.cs.virginia.edu/stream/
想要在定制主板上测试无 ECC 内存芯片的完整性和整体性能
在这里,我曾多次使用 memtest 进行完整性检查,效果很好:
*注意,我只读到过它支持 Arm。但是,我还没有在 Arm 上测试过。
是否有一些可以在 Linux 下运行的工具,以便我可以同时监控系统和全局温度?
如果您使用的发行版支持 yum,您可以轻松安装 lm_sensors:
yum 安装 lm_sensors
你也可以从这里下载并编译:http://www.lm-sensors.org/
但是,我不确定它是否会提供有关内存的温度数据。您的主板还必须有读取内存温度的传感器。
一般来说,是否有一些非 ECC 特定的测试可做?
memtest 确实包括 ECC 和非 ECC 测试
我刚想起最后一件事你可以尝试。获取适用于 arm 架构的 fedora 或 rpm。你可以运行压力包,它将对你的 CPU 和内存进行压力测试:
压力-1.0.4-4.fc13.armv5tel.rpm
如果 busybox 中有一个 rpm 安装程序,您可能能够部署 fedora 发行版中的一个 arm rpm。
答案3
按照 wazoox 的建议,使用 dd 将文件写入现有的 tmpfs(如 /tmp),但将其大小限制为可用内存的一半以下。
首先,找出有多少可用内存:
> free -h
total used free shared buff/cache available
Mem: 15G 3.0G 11G 540M 1.0G 11G
Swap: 9G 1.2M 9G
然后,写入一个文件,在本例中总共 4GB,使用 4000 个 1MB 的块:
> 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
这样,您将避免交换,而且不需要安装任何东西。
答案4
我使用了 u-boot 的 memtest,有两个测试(参见 u-boot/common/cmd_mem.c):
第一个测试很简单(编写、检查),第二个测试通过#define CONFIG_SYS_ALT_MEMTEST 1
并添加更多测试来激活,
注意在 u-boot 内存空间之后传递起始偏移量(argv[1]),即mtest 0x200000
。