自学内容网 自学内容网

[DRAM Test]DRAM内存测试、内存故障定位、内存维修工具大汇总

 目录

1、《HCI MemTest, RunMemtestPro》

2、《MEMTEST64》

3、AIDA64稳定性测试

4、《MEMTEST86》与《MEMTEST86+》

5、Windows Memory Diagnostic Tool(微软内存诊断工具)

6、《RAM STRESS TEST》

7、《AMT64和AMT128》

8、《DocMemory》

9、《RAMFIX V110516B》

10、《Smart RAM Detect 1.1》

11、《Memtest Jacky V1.6》

12、《GoldMemory》

13、《TestMem5》

14、《StressAppTest》

15、《IMX DDR Stress Tester》

16、《Memtester》

17、《System Memory Test, SMTest》

18、《台湾欧阳软件》

1、《HCI MemTest, RunMemtestPro》

https://hcidesign.com/memtest/

HCI MemTest恐怕是世界上用户最多的内存测试软件

它之所以如此出名,我认为有以下几点原因:

①它是当年少数可以在Windows操作系统中运行的内存检测软件之一(传统的内存测试均是在DOS或Linux下实现的字符界面)

②该软件使用非常简单,并且在网上可以随意搜索下载到汉化破解版本。很多盗版系统光盘、PE工具里面都集成了该工具

它的免费版本需要手动多开(Free版有2GB限制),于是有国人针对的做了MEMTEST多开器《RunMemtest PRO》

HCI MemTest适合作为内存稳定性、兼容性测试工具,特别适合用于验证内存超频稳定性

HCI MemTest是大多数电商PC售后客服的标配工具(因为客户操作起来简单,无需做启动盘)。根据经验,测试到100%可诊断出明显的内存故障;检测间歇性暗病的测试率要达到400%。此工具可以测试出百分之九十以上的故障条。注意:在云更新无盘环境下,因为部分内存作回写缓存,应用层不可访问,HCI MemTest存在误报的现象

2、《MEMTEST64》

https://www.techpowerup.com/memtest64/

它是鼎鼎大名的GPU-Z团队开发,同样是免费的,可以下载到汉化版。支持随机数据测试、移动数据测试、位模式测试

它的优点:

①64位访问内存,无须像HCI MemTest那样开多个窗口(故不支持32位系统)。支持CPU多线程,测试速度比同类软件快

②测试内存所占大小可选择(一般验证超频不需要做完整大小测试,至少15%区域即可)

③可指定测试次数和测试时间。可让错误时停止测试,避免过多触发内存坏块而导致蓝屏

它的缺点:

①在WIN10下,有较大几率会出现“内存锁定失败(可能由其它应用程序/内核保留)”,也就是分配内存失败,需要重启再点测试

②在WIN10下,有较大几率会出现分配占用内存过小的问题,这意味着不能检查所有区域,需要重启再点测试

③在WIN10下,测试内存会伴随着较大的硬盘写入(可能与“将其他应用程序推送到硬盘虚拟内存中以释放物理内存有关”)

威刚售后客服曾说MEMTEST64与1809系统不大兼容。笔者用此工具做内存兼容性、稳定性测试,也用来测试HCI MemTest、MEMTEST86检测不出的坏件,发现此工具对镁光(英睿达)铂胜马甲内存、七彩虹内存(4bit颗粒)十分敏感,一分钟左右即可将故障显现。

3、AIDA64稳定性测试

http://www.aida64.com.cn

Aida64测试工具有一项System Stability Test,可以测试稳定性和兼容性,不过国人一般用它来测试散热(比如单拷FPU)。AIDA64的测试压力强度确实不如LINX和Prime95,不大适合作为内存超频验证工具。笔者用它来做内存稳定兼容性测试工具,也用于测试MEMTEST扫不出故障的内存条。在遇到硬件故障时,AIDA64通常会报以下错误:

测内存可单独勾选“Stress System Memory“

AIDA64的优势在于可以实现自动化测试,其命令行使用极其方便(仅支持商业版和工程师版)

@echo off
:start
AIDA64 /SST CPU,FPU,CACHE,RAM /SSTDUR 15 
echo System Stability Test Pass
pause
SST后面表示要测试的硬件项目,SSTDUR后面表示要测试的时间。即测试15分钟后终止测试,并显示测试结果

上述三种,它们属于应用层内存检测工具。这些设计者无须关心DDR是几代、芯片组型号、CPU型号、是否ECC、主板BIOS等硬件底层的因素,只需要关心校验算法和优化检测效率。即使在这篇文章写下之时,DDR5还没有上市,但可以断言,上述三种工具,可以测试DDR5内存。而无须随着DDR5内存的上市而进行版本迭代。应用层面的内存检测几乎不存在误报现象,但漏报率大于专业的内存诊断软件。由于现代操作系统会占据大量的内存,导致某些内存区域无法被访问检测到

下面再来介绍几种专业工具:

4、《MEMTEST86》与《MEMTEST86+》

https://www.memtest86.com

http://www.memtest.org/

MemTest86最初由Chris Brady(克里斯·布雷迪)开发,于1994年首次发布。但是,所使用的某些测试算法可以追溯到1981年,MemTest86最初是作为免费开源(GPL)软件发布的。后来在3.0版停止更新了两年,为了支持新的硬件,Samuel Demeulemeester在Memtest86的基础上开发了Memtest86+,命名很不幸,因为它导致了现在用户认知的混乱。不管怎样,随后双方都继续开发各自的MEMTEST86。MemTest86 + V5.0和MemTest86 V4.3的功能集在2013年大致相等。也是在2013年,有人提出将两个代码流重新合并到一个程序包中的提议,但Samuel希望不合并这些版本。后来Chris Brady将Memtest86的版权卖给了PassMark(世界上著名的硬件测试软体开发商)。Passmark在原有的代码之上,增加了64位支持(无须PAE)、UEFI自启动、DDR4支持,并且注册Memtest86为商标,把MEMTEST86变为了闭源商业软件(对于普通用户是完全免费的)。而MemTest86+ 5.01版本的开发似乎已经停止。在撰写本文时(2020年2月),自2013年以来没有更新。2013年时,还处在DDR3时代,所以MEMTEST86+在测试某些DDR4平台的时候会遇到误报和漏报问题,所谓误报,就是内存无故障却报错;漏报,就是内存有故障,却不报错。这主要是由于缺乏硬件层面支持造成的。PassMark MEMTEST86在旧版V4的基础上增加了第13项测试 [Hammer Test],可以检测出更多有缺陷的颗粒。虽然不建议在DDR4上使用老旧的MEMTEST86+,但因为PassMark MEMTEST86不再支持传统BIOS启动(仅支持UEFI),所以在DDR1\DDR2\DDR3机器上,MemTest86+ 5.01仍然有一番用武之地。

MEMTEST86扫描一根8G DDR3或8G DDR4仅需要不到30分钟,而同类产品往往需要一个小时

PassMark MEMTEST86内存测试算法经过二十余年的不断完善,可以有效地识别99%以上的内存故障。因此,系统制造商,电脑维修店,超频者和PC制造商经常使用它,MEMTEST86几乎成了业界事实上的标准测试和验证工具,很多工厂级测试工具都是基于它开发的。大多数内存厂商在检测过程中也会用到它(特别是套条),如果你买的内存用MEMTEST86扫出有故障,那么内存厂商也是认可这个测试结果的。

5、Windows Memory Diagnostic Tool(微软内存诊断工具)

微软内存诊断工具英文名称windows memory diagnostic tool,是最常见而又被忽视的内存测试利器。它最早集成于windows安装光盘,从VISTA时代开始内置于系统中。

早期的界面是这样的:

WIN7时代是这样的:

开机windows启动菜单可以找到。进入系统后运行MdSched,也可以调出。

默认设置是测不出细微故障的,需要按F1选择扩展测试。从算法上看,扩展测试精确度不错,但是十分耗时,8G内存测试长达一整晚时间

基本:基本测试为 MATS+、INVC 和 SCHCKR(启用缓存)。标准:标准测试包括所有基本测试,以及 LRAND、Stride 6(启用缓存)、CHCKR3、WMATS+ 和 WINVC。扩展:扩展测试包括所有标准测试,外加 MATS+(禁用缓存)、Stride38、WSCHCKR、WStride-6、CHCKR4、WCHCKR3、ERAND、Stride6(禁用缓存)和 CHCKR8。

6、《RAM STRESS TEST》

https://www.rst.com

RST是一款由美国Ultra-X公司开发的工厂级测试工具,专为满足内存制造商、系统制造商、设计工程师和维修人员的严格测试需求而设计的。后来流落到民间,它能够检测出内存条是否存在颗粒损坏、PCB板有没有短路或虚焊等情况,据说镁光、海盗船、金士顿、海力士都是它的典型客户。自1999年推出以来,RST树立了测试准确性的标杆,并已成为业界事实上的标准测试和验证工具。RST拥有30多种专有测试模式,产品以硬件的形式售卖,有PCI、PCI-E、USB多种版本。具有无与伦比准确性。

网上能找到最新的破解版是RST PRO USB3(2007年发布),最大内存容量64GB,不支持UEFI启动

这个公司不卖软件,都是以硬件方式售卖,可以最大限度减少盗版。中国大陆买不到,而且售价很高,至少数百美金

7、《AMT64和AMT128》

AMT64全称64-Bits Advanced Module Test program,是专为工厂及内存条商家开发的硬件测试卡,适合内存条加工厂及内存条零售市场商家使用。AMT64MP是在AMT64基础上的升级产品,支持多核心处理器,以加快检测速度。可以将故障定位到具体颗粒(需要特定主板的支持,比如B75\B85\Z170),一般作为维修工具。从测试项目上看,它借鉴了MEMTEST86、MEMTEST86+、RST的某些算法,测试项目16个,应该具有较高的精度和测试速度。笔者花68元从咸鱼上买了一块,在200系、300系主板上虽然不支持坏颗粒定位,但同样能够进行错误扫描。同样不支持UEFI启动,需要开启CSM方能启动。最新的产品名为AMT128,可支持在B360、Z370主板下定位坏颗粒

8、《DocMemory》

https://www.simmtester.com/ProductDocMemory

DocMemory中文名为《内存神医》,它早期是一种免费软件,作者后期做成了硬件产品的形式。该公司研发重点在于内存测试仪,DocMemory测试卡自2009年就未再更新过了,最多支持到DDR3。DocMemory V3.1是能够下载到的绝版,不支持4G以上内存

9、《RAMFIX V110516B》

RAMFIX V110516B是国人基于MEMTEST86开源项目做出的一个测试软件,可定为到具体故障颗粒。不过已经多年没更新过了,已经被作者放弃了

10、《Smart RAM Detect 1.1》

https://www.ramcenter.com.tw

Smart RAM Detect 1.1在谷歌上都很难找到资源了,是台湾瑞腾特开发的,不支持4GB以上内存。该公司目前只生产硬件产品了

11、《Memtest Jacky V1.6》

在MEMTEST86基础上做的颗粒地址定位,DDR1以上内存可能无法精确定位坏颗粒

12、《GoldMemory》

http://www.goldmemory.cz

GoldMemory是捷克人Michal Tulacek编写的,免费版6.92自2007年未再次更新过,付费版7.98支持DDR4,但也数年未更新

此软件在东欧国家使用比较普遍,大多被集中到了盗版光盘中,可以从以下站点下载到7.85破解版:

http://89.236.197.208/Public/BELOFF/Beloff%202015%20FUll/BOOT/IMG/GOLDMEM.IMG

http://www.vvg.su/data/Data/Soft/BOOT/IMG/GOLDMEM.IMG

基于PAE支持64G内存,支持快读、标准、完全三种测试模式,仅支持传统引导,不支持UEFI模式

13、《TestMem5》

TestMem5是一款功能强大的内存检测软件,专门用于查找和诊断计算机内存中的错误。它通过执行一系列复杂的算法和模式来测试内存,从而发现潜在的问题。这款工具对于硬件爱好者、系统管理员和故障排查专家来说尤其有用,因为它可以帮助他们在问题发生前预防内存故障,或者在问题出现后快速定位问题所在。TestMem5,简称TM5,是一个免费且开源的内存诊断工具,它能够对计算机的RAM进行深入的错误检测。通过运行各种测试模式,如线性、交叉、双倍数据速率等,TestMem5能够找出内存模块可能存在的问题,确保超频后的内存能在高负荷下正常工作。

TestMem5的特点主要包括:

1. **全面性**:TestMem5覆盖了多种测试模式,包括但不限于连续读写、随机访问、内存填充、交错测试等,以确保对内存进行全面检测。

2. **易用性**:该工具界面简洁,操作直观,用户无需深入了解内存工作原理即可使用。只需选择测试模式,然后开始测试,程序会自动进行内存检查。

3. **可定制性**:TestMem5允许用户自定义测试参数,如测试范围、循环次数、错误阈值等,以适应不同场景的需求。

4. **错误报告**:在检测过程中,如果发现内存错误,TestMem5会生成详细的错误报告,包括错误类型、位置以及可能的原因,为故障排查提供有力支持。

5. **兼容性**:TestMem5支持各种类型的内存和操作系统,包括Windows、Linux和FreeBSD等,使其在不同环境下的适用性得到保证。

6. **稳定性**:由于TestMem5的测试过程非常严谨,它可以在长时间运行后仍然保持稳定的性能,这使得它成为进行长时间压力测试的理想选择。

7. **安全性**:TestMem5在执行测试时不会修改系统文件或数据,因此用户可以安心使用,不必担心造成额外损失。

在实际应用中,TestMem5可以用于以下几种情况:

1. **新硬件安装**:当添加或更换内存条时,使用TestMem5进行初步测试,以确保新内存的兼容性和稳定性。

2. **系统故障排查**:当遇到频繁的蓝屏、系统崩溃或程序异常时,可以用TestMem5检查内存是否为问题源头。

3. **性能优化**:在进行系统优化或超频设置时,使用TestMem5确认内存是否能承受更高的工作负荷。

4. **服务器维护**:对于24/7运行的服务器,定期进行内存测试可以预防因内存问题导致的服务中断。

TestMem5是一款不可或缺的内存测试工具,它帮助我们识别并解决内存问题,提高了系统的稳定性和可靠性。了解并掌握如何有效使用TestMem5,对于任何IT专业人员来说都是一项重要的技能。

v0.12 版本被认为是其中的一个经典版本,因为它包含了多种优化配置,使得测试过程更加全面且高效。 “fuller config”可能指的是该版本中包含的全面配置选项,提供了更多细致的设置,让用户可以根据自己的硬件特性进行微调,以达到最佳的测试效果。例如,"Heavy5opt@anta777"可能是一个预设的测试配置,专为一般使用场景设计,它会在较高的压力下运行,以确保内存的稳定性。而"Extreme1@anta777"则可能是更激进的测试模式,用于更严苛的超频环境,通常需要运行多圈来充分验证内存的耐久性。 内存超频的过程中,稳定性至关重要。如果超频不当,可能会导致系统崩溃、蓝屏等问题。因此,使用像TestMem5这样的工具进行内存测试,可以在超频后确认系统是否能够稳定运行。在超频前,建议先进行标准时序下的内存测试,确保原始状态的稳定性。然后逐步提高内存的时钟速度、电压和其他相关设置,每次改动后都进行一轮TestMem5的测试。如果在某个设置下TestMem5能够通过所有测试,那么这个设置理论上是稳定的。 在实际操作中,"fuller configs"的压缩包可能包含了各种预设的配置文件,用户可以根据自己的需求选择适合的配置进行测试。例如,对于初学者,可以尝试使用较为保守的配置,而对于经验丰富的超频者,可能会选择更激进的配置来挑战内存的极限。 TestMem5 v0.12 是内存超频者的重要工具,其提供的各种配置文件有助于用户找到他们的内存的最佳工作状态。通过耐心地测试和调整,用户不仅可以提升系统的性能,还能确保系统在超频后的稳定运行,享受更流畅的计算体验。在进行内存超频时,一定要谨慎操作,遵循安全的电压和时序限制,避免对硬件造成不可逆的损害。

14、《StressAppTest》

压力测试 压力应用测试(或Stressapptest,其Unix名称)是一种内存接口测试。 它试图最大化从处理器和I / O到内存的随机流量,目的是创建实际的高负载情况,以便测试计算机中的现有硬件设备。 它已经在Google使用了一段时间,现在可以在apache 2.0许可下使用。

深入理解stressapptest,2024年最新【吐血整理_stressapptest安装-CSDN博客

stressapptest是一款免费的开源软件,支持用于测试Linux系统的稳定性和可靠性。它可以利用多个CPU/Core,甚至可以访问主内存的所有部分来测试系统的稳定性,以此推断系统是否存在内存泄漏或其他性能方面的问题。

stressapptest的主要目标是发现难以重现的系统稳定性问题和其他体现在Java虚拟机、KVM Hypervisor和Hadoop集群等普通用例中的Linux系统中的性能问题。它还包括多个测试模式和选项以支持不同测试场景,比如随机测试、循环测试、全内存测试、持续测试等。

二、安装
2.1、源码编译安装
// 1.下载源码
git clone https://github.com/stressapptest/stressapptest.git

cd stressapptest
./configure
make
sudo make install

2.2、命令行安装
Ubuntu下执行如下命令进行安装:

sudo apt-get install stressapptest

2.3、安装确认
执行如下命令来确认stressapptest 是否安装成功:

stressapptest -h

lyb@ubuntu:~/learn$ stressapptest -h
Stats: SAT revision 1.0.6_autoconf, 64 bit binary
Log: buildd @ lgw01-amd64-022 on Thu Apr 5 10:28:35 UTC 2018 from open source release
Usage: ./sat(32|64) [options]
-M mbytes megabytes of ram to test
-H mbytes minimum megabytes of hugepages to require
-s seconds number of seconds to run
-m threads number of memory copy threads to run
-i threads number of memory invert threads to run
-C threads number of memory CPU stress threads to run
–findfiles find locations to do disk IO automatically
-d device add a direct write disk thread with block device (or file) ‘device’
-f filename add a disk thread with tempfile ‘filename’
-l logfile log output to file ‘logfile’
–max_errors n exit early after finding ‘n’ errors
-v level verbosity (0-20), default is 8
-W Use more CPU-stressful memory copy
-A run in degraded mode on incompatible systems
-p pagesize size in bytes of memory chunks
–filesize size size of disk IO tempfiles
-n ipaddr add a network thread connecting to system at ‘ipaddr’
–listen run a thread to listen for and respond to network threads.
–no_errors run without checking for ECC or other errors
–force_errors inject false errors to test error handling
–force_errors_like_crazy inject a lot of false errors to test error handling
-F don’t result check each transaction
–stop_on_errors Stop after finding the first error.
–read-block-size size of block for reading (-d)
–write-block-size size of block for writing (-d). If not defined, the size of block for writing will be defined as the size of block for reading
–segment-size size of segments to split disk into (-d)
–cache-size size of disk cache (-d)
–blocks-per-segment number of blocks to read/write per segment per iteration (-d)
–read-threshold maximum time (in us) a block read should take (-d)
–write-threshold maximum time (in us) a block write should take (-d)
–random-threads number of random threads for each disk write thread (-d)
–destructive write/wipe disk partition (-d)
–monitor_mode only do ECC error polling, no stress load.
–cc_test do the cache coherency testing
–cc_inc_count number of times to increment the cacheline’s member
–cc_line_count number of cache line sized datastructures to allocate for the cache coherency threads to operate
–paddr_base allocate memory starting from this address
–pause_delay delay (in seconds) between power spikes
–pause_duration duration (in seconds) of each pause
–local_numa choose memory regions associated with each CPU to be tested by that CPU
–remote_numa choose memory regions not associated with each CPU to be tested by that CPU
–interleave_size bytes size in bytes of each channel’s data as interleaved between memory channels
–channel_width bits width in bits of each memory channel
–memory_channel u1,u2 defines a comma-separated list of names
for dram packages in a memory channel.
Use multiple times to define multiple channels.
lyb@ubuntu:~/learn$

三、重要参数详解
3.1、查询支持的参数
执行如下命令来确认stressapptest支持的参数:

stressapptest -h

lyb@ubuntu:~/learn$ stressapptest -h
Stats: SAT revision 1.0.6_autoconf, 64 bit binary
Log: buildd @ lgw01-amd64-022 on Thu Apr 5 10:28:35 UTC 2018 from open source release
Usage: ./sat(32|64) [options]
-M mbytes megabytes of ram to test
-H mbytes minimum megabytes of hugepages to require
-s seconds number of seconds to run
-m threads number of memory copy threads to run
-i threads number of memory invert threads to run
-C threads number of memory CPU stress threads to run
–findfiles find locations to do disk IO automatically
-d device add a direct write disk thread with block device (or file) ‘device’
-f filename add a disk thread with tempfile ‘filename’
-l logfile log output to file ‘logfile’
–max_errors n exit early after finding ‘n’ errors

stressapptest – help 可以看到常用参数

🌟参数解释

-M mbytes: 指定测试时要使用的内存大小(以兆字节为单位)。

–reserve-memory: 如果不使用大页面(hugepages),则为系统保留的内存量。

-H mbytes: 要求的最小大页面内存大小(以兆字节为单位)。

-s seconds: 测试运行的时间(秒)。

-m threads: 启动进行内存复制任务的线程数目。

-i threads: 启动进行内存反转任务(即对内存中的数据取反)的线程数目。

-C threads: 启动用于CPU压力测试的线程数目。

–findfiles: 自动查找磁盘I/O操作的位置。

-d device: 添加一个直接写操作磁盘的线程,针对块设备(或文件)‘device’。

-f filename: 添加一个使用临时文件 ‘filename’ 的磁盘线程。

-l logfile: 将输出日志写入 ‘logfile’ 文件。

–no_timestamps: 日志消息中不添加时间戳前缀。

–max_errors n: 在发现 ‘n’ 个错误后早期退出。

-v level: 详细信息级别(0-20),默认是8。

–printsec secs: 指定每隔多少秒打印「剩余秒数」的信息。

-W: 使用更多CPU资源以提高内存复制任务的压力。

-A: 在不兼容的系统上以降级模式运行。

-p pagesize: 内存块的大小(字节)。

–filesize size: 磁盘I/O临时文件的大小。

-n ipaddr: 添加一个网络线程,连接到IP地址为 ‘ipaddr’ 的系统。

–listen: 运行线程来监听并响应网络线程。

–no_errors: 在不检查ECC或其他错误的情况下运行。

–force_errors: 注入假错误来测试错误处理。

–force_errors_like_crazy: 注入大量假错误来测试错误处理。

-F: 不检查每项事务的结果。

–stop_on_errors: 在发现第一个错误后停止测试。

–read-block-size: 用于读取的块大小(用于 -d 参数)。

–write-block-size: 用于写入的块大小(用于 -d 参数),如果未定义,则使用读取的块大小作为写入的块大小。

–segment-size: 分割磁盘的段大小(用于 -d 参数)。

–cache-size: 磁盘缓存的大小(用于 -d 参数)。

–blocks-per-segment: 每次迭代每个段读/写的块数量(用于 -d 参数)。

–read-threshold: 一个块读操作应该花费的最长时间(微秒)(用于 -d 参数)。

–write-threshold: 一个块写操作应该花费的最长时间(微秒)(用于 -d 参数)。

–random-threads: 每个磁盘写线程的随机线程数(用于 -d 参数)。

–destructive: 写入/擦除磁盘分区(用于 -d 参数)。

–monitor_mode: 只进行ECC错误轮询,不产生压力负载。

–cc_test: 进行缓存一致性测试。

–cc_inc_count: 增加缓存线成员的次数。

–cc_line_count: 分配的缓存线大小数据结构的数量,用于缓存一致性线程操作。

🌟工具使用
 stressapptest -s 100 -M 2048 -m 4 -W

👉这条命令的含义是:
-s 100 : 测试持续100秒。

-M 2048: 使用2048MB(即2GB)内存进行测试。
-m 4: 启动4个线程执行测试。
-W: 启用更强的数据完整性验证。

⚠️注意事项
在进行内存压测时,请注意以下几点:
监控系统行为:在压测期间,监控系统的响应,以确保系统不会出现过载导致的严重问题。
确保系统稳定性:在生产环境中,确保您了解运行压测的潜在风险。压测可能会导致系统使用大量资源,从而影响到其他应用或服务。
测试结果:压测结束后,stressapptest会报告测试结果,包括是否有错误发生。仔细检查这些结果以确保内存的稳定性和可靠性。

✨numactl和stressapp的结合:
日常中如果我们要对一些numa的节点,例如cxl的memory的测试的话,
在 NUMA 架构下,我们可以将 CPU 绑定到节点 0,将内存分配绑定到节点 2,然后使用 stressapptest 工具在这种配置下运行压力测试,测试持续 100 秒,使用 2 GB 的内存,并启动 4 个执行内存操作的线程,同时应用更多的 CPU 压力。这可以帮助你观察在特定 NUMA 维度上系统组件(特别是内存和CPU)的性能表现和稳定性。

numactl -N 0 -m 2 stressapptest -s 100 -M 2048 -m 4 -W

watch -n 1 "numactl -H"
 

可以使用上面的命令查看numa节点的内存消耗情况。

15、《IMX DDR Stress Tester》

IMX DDR Stress Tester是一款专为IMX系列处理器设计的内存(DDR)压力测试工具。它主要用于检测和评估DDR内存模块在连续、高强度的工作状态下的稳定性、性能和可靠性。这款工具的独特之处在于它可以在IMX串行下载模式下运行,这意味着在进行测试时,设备可以通过USB接口与IMX芯片内置的BootROM进行通信。 IMX处理器是飞思卡尔(现NXP半导体)推出的一系列基于ARM架构的微控制器,广泛应用于嵌入式系统、汽车电子、工业控制等领域。DDR内存是这些处理器常用的数据存储组件,对于系统的整体性能和稳定性至关重要。

DDR Stress Tester可以帮助开发者和硬件工程师在系统设计初期发现并修复潜在的内存问题,从而提高产品的质量和可靠性。 该工具V2.70版本的执行文件"ddr_stress_tester_jtag_v2.70.exe"表明它采用了JTAG(Joint Test Action Group)接口。JTAG是一种标准的硬件调试和测试协议,允许用户通过物理连接访问芯片内部的测试点,进行边界扫描、故障检测和程序下载等操作。在这个工具中,JTAG接口被用来与IMX处理器的BootROM交互,实现对DDR内存的控制和测试。

DDR Stress Tester可能包含以下功能:

1. 内存初始化和配置:工具能够设置DDR内存的时序参数,如CAS延迟、预充电时间、刷新周期等,以模拟各种工作条件。

2. 压力测试模式:执行各种复杂的内存操作,如随机写入、读取、刷新等,长时间持续运行以检测内存错误。

3. 错误检测和报告:在测试过程中,工具会监控内存操作的正确性,发现任何错误或异常时立即记录并报告。

4. 故障定位:如果发生错误,工具可能会提供故障定位功能,帮助用户确定问题的具体位置,如特定的DRAM行列地址或数据总线。

5. 性能评估:除了查找错误,工具还能测量DDR的读写速度、带宽等性能指标,以评估其在不同工作负载下的表现。

使用IMX DDR Stress Tester时,用户通常需要具备一定的硬件和软件知识,包括理解DDR内存的工作原理、熟悉IMX处理器的BootROM接口以及掌握基本的JTAG调试技巧。在实际应用中,这一步骤通常由专业的开发团队或工程师执行,以确保产品在出厂前达到高质量标准。 IMX DDR Stress Tester是针对IMX系列处理器内存模块的重要测试工具,它利用JTAG接口在串行下载模式下进行工作,对DDR内存进行全面的压力测试,帮助开发者和工程师优化系统性能,提高产品的稳定性和可靠性。通过深入理解和有效使用此工具,可以显著提升基于IMX处理器的嵌入式系统的质量。

IMX6 DDR压力测试软件是针对恩智浦半导体(NXP)IMX6系列处理器进行内存性能评估和优化的专业工具。IMX6系列是嵌入式应用中广泛使用的微处理器,其内置的DDR(Double Data Rate)内存是系统运行速度和效率的关键因素。DDR压力测试的目的是确保内存系统的稳定性和可靠性,同时帮助开发者找到最佳的内存配置参数,以实现高效能与低功耗的平衡。

DDR内存测试通常包含以下几个核心方面:

1. **内存稳定性**:测试软件会模拟各种工作负载,如大量读写操作,检查内存是否在长时间高负荷下保持稳定,无数据丢失或错误。

2. **内存带宽**:通过读写速度的测量,评估DDR内存的实际传输速率,了解内存的性能极限。

3. **内存延迟**:测量数据从请求到实际处理的时间,低延迟意味着更快的响应速度。

4. **内存容量**:测试内存的最大存储能力,确保所有内存单元都能正常工作。

5. **内存配置**:通过调整内存控制器的参数,如时序、电压和预取设置,找到最佳配置,以平衡性能和功耗。

DDR Stress Tester v2.60是这个软件的具体版本,它可能提供了丰富的选项供用户自定义测试条件,如测试模式(连续读写、随机访问等)、循环次数、数据块大小以及内存工作频率等。在Windows 7环境下运行表明,该软件具有良好的跨平台兼容性。

使用此软件时,首先要了解IMX6处理器的DDR内存规格,包括内存类型(DDR2、DDR3等)、容量、速度等。然后,根据实际应用场景选择合适的测试场景,例如,如果应用对实时性要求较高,则应关注内存延迟;如果关注能效,则需优化内存带宽和功耗。 在测试过程中,记录并分析测试结果,对比不同配置下的性能差异,逐步调整参数以达到最优状态。一旦找到最佳配置,可以将这些参数应用于硬件设计或固件更新,以提高整个系统的性能。

IMX6 DDR压力测试软件是开发者和硬件工程师的重要工具,它帮助确保IMX6设备的内存子系统能够可靠、高效地工作,对于提升嵌入式系统的整体性能和用户体验至关重要。在进行测试时,务必耐心细致,充分理解测试指标的含义,并根据实际需求进行调优。

16、《Memtester》

Linux内存压力测试-memtester工具简析

进行内存的压力测试,Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, 可以对系统现有的内存进行上面项目的测试。

memtester工具对嵌入式Linux内存压力测试_memtester buildroot-CSDN博客

Memtest工具
memtester是一款比较经典而且使用广泛的内存检测工具,具备使用简单、易于移植、检测结果可靠性好的特点,支持32位和64位的类Unix系统(Unix、Linux、Android、IOS)上使用。memtester主要支持的功能包括:

1、捕捉内存错误,及长时间处于高位或者低位的内存坏位
2、支持多项测试,随机值、异或比较、异或运算、乘法、除法、减法
3、可指定测试内存起始地址、内存大小以及测试次数

​ memtester官网和下载地址:

链接: http://pyropus.ca/software/memtester/.

1、准备工作

测试环境:Linux

    代码工具:source insight

    Memtester版本:4.3.0

    下载地址: http://pyropus.ca/software/memtester/

2、 安装

tar zxvf memtester-4.3.0.tar.gz

cd memtester-4.3.0  www.2cto.com  

make && make install</span>

3  参数介绍

         memtester [-p PHYSADDR] <MEMORY> [ITERATIONS]

         MEMORY 申请测试内存的数量,单位默认是megabytes(兆),也可以是B K M G

         ITERATIONS 测试的次数,默认是无限

4 开始测试,申请10M内存,测试一次,如下图:

5 试用心得

主要想对内存进行压力测试,以上只是试用,可以申请大内存,放入后台无限测试

nohup memtester 2G  > /tmp/memtest.log &

6.

结果全部为OK则内存正常。

对于某些不需要的测试项目可以通过修改memtester.c文件,注释掉某些内容再重新make一下便可。如下:


struct test tests[] = {

    { "Random Value", test_random_value },

    { "Compare XOR", test_xor_comparison },

    { "Compare SUB", test_sub_comparison },

    { "Compare MUL", test_mul_comparison },

    { "Compare DIV",test_div_comparison },

    { "Compare OR", test_or_comparison },

    { "Compare AND", test_and_comparison },

/*    { "Sequential Increment", test_seqinc_comparison }, */

/*    { "Solid Bits", test_solidbits_comparison },

    { "Block Sequential", test_blockseq_comparison },

    { "Checkerboard", test_checkerboard_comparison },

    { "Bit Spread", test_bitspread_comparison },

    { "Bit Flip", test_bitflip_comparison },

    { "Walking Ones", test_walkbits1_comparison },

    { "Walking Zeroes", test_walkbits0_comparison },

#ifdef TEST_NARROW_WRITES   

    { "8-bit Writes", test_8bit_wide_random },

    { "16-bit Writes", test_16bit_wide_random },

#endif

*/

    { NULL, NULL }

};

17、《System Memory Test, SMTest》

针对服务器内存条RDIMM测试的专业测试维修软件,可以给出报错地址对应的行列地址。

18、《台湾欧阳软件》

需要硬件支持,支持内存条的热插拔测试,非常专业的维修测试工具。


原文地址:https://blog.csdn.net/2401_82550753/article/details/142431243

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!