最近内存条的市场行情把大家都整懵了。基本上是一天一个价,甚至出现了有钱难拿货的情况。涨价潮背后,不少翻新条、残次品趁机流入市场,用不了几天就蓝屏、重启,给我们这些运维牛马带来了很不爽的感觉。下面就分享3个最简单、零门槛的测试方法,不用复杂配置,咔咔咔搞定再也不用出了故障再骂采购部了。如果在windows上好像是有个TM5工具,但说实话,我没用过,手头上可以测试的也只有Linux系统,所以windows下的测试不在本篇讨论范围。测试前提:关闭无关后台服务,避免其他进程占用内存,影响测试准确性。这也是测试硬件基操了。不用说大家也知道,说了也是凑字数而已。方法1:系统自带命令dd快速初筛。dd是几乎所有Linux发行版都自带命令,反正我没遇到过没这命令的发行版。用它通过从内存零设备读数据、写入空设备的操作,能快速测试内存的基础读写稳定性。如果这一步都通不过,内存条直接甩回给采购部,不然后面有你受的。dd if=/dev/zero of=/dev/null bs=4096 count=1048576
- if=/dev/zero:从内存零设备读取数据(相当于生成空白数据);
- of=/dev/null:写入空设备(相当于丢弃数据,只测试内存传输);
- count=1048576:总共读写1048576次,合计测试4GB内存(4096*1048576=4294967296字节=4GB),根据实际情况调整。
我这里实测命令秒级完成,会显示类似“1048576+0 records in 1048576+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 1.14088 s, 3.8 GB/s”的信息,说明内存基础读写正常;如果执行过程中出现“error writing”“permission denied”(排除权限问题后)等错误,直接判定为不良条,砸回给采购部。方法2:memtester精准检测,方法1的dd只能做初筛,想更精准检测内存颗粒、位翻转等问题,就要上memtester工具,它可以专门针对内存稳定性测试,操作简单,输出直观,实乃居家旅行必备良药。# 安装memtester(以Debian系统为例):apt-get update && apt-get install memtester # 执行测试:memtester 10M 2
- 10M:测试10M内存(我这里是演示,为了省时间只测试10M,测试的时候需要根据实际内存大小调整,建议留出2GB给系统,比如16GB内存测14000M);
- 2:测试2个循环(循环次数越多,检测越全面,我这里演示就2次,实际环境酌情增加)。
测试过程中如果全程显示ok,没有任何FAIL、error提示,说明内存稳定。如果出现一次“FAIL”,直接判定为不良条,比如显示“FAILURE: 0x00000000 != 0x00000001 at offset 0x139ba4e00”,代表该内存地址存在位翻转问题,无法正常使用。方法3:MemTest86+终极验证,如果前两种方法测试正常,且有时间(想摸鱼的),那就用专业的MemTest86+做离线测试。apt-get install memtest86+
可以看到,安装的最后它提示:正在为UEFI固件设置添加启动菜单项...这玩意需要重启系统用它添加的启动项进入测试,是不是瞬间觉得高大上了?二话不说,直接重启,反正是测试环境,不用担心被迫提桶跑路。重启后发现启动菜单多了这两项玩意,选择前面那个即可,后面那个什么串口什么的,不太懂,估计是远程调试用的?懂的大佬来指导下。然后它就开始测试了,手机拍的,将就看,不要问什么手机,问就是诺基亚!要说创作不容易,大佬你看我这足足花了20多分钟才测试完1轮:默认是无限测试的,不会自己停的,但我们只需要测试1轮,大概就能测出有没有问题了,测试完一轮后,会显示测试结果,有ERROR就不会显示PASS了:结合上面3种测试方法,基本可以证明我这内存条完全正常。再啰嗦一句,创作不易,我这都是实打实操作一次的,如果觉得这些方法实用,记得点赞并转发给身边的运维同(niu)行(ma)~