Linux:如何找出内存故障的原因?

时间:2020-01-09 10:41:36  来源:igfitidea点击:

由于各种原因,可能会发生内存故障。

您可以使用memtester命令进行压力测试以查找内存子系统故障。

memtester命令是用于对内存子系统进行压力测试的有效用户空间测试器。
在Linux下查找间歇性和不确定性故障非常有效。

您可以按以下方式运行memtester:

memtester MEMORY ITERATIONS
  • MEMORY:要分配和测试的内存量,以兆字节为单位
  • ITERATIONS:要迭代的循环数。默认值是无限的

一切正常时,memtesters退出代码为0。
否则,它是以下值的逻辑或:

  • x01:分配或锁定内存错误,或调用错误
  • x02:卡住地址测试期间出错
  • x04:其他测试之一期间出错

例子

$ memtest 5 1

输出:

memtester version 4.0.5 (32-bit)
Copyright (C) 2005 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffff000
want 5MB (5242880 bytes)
got  5MB (5242880 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address       : ok
Random Value        : ok
Compare XOR         : ok
Compare SUB         : ok
Compare MUL         : ok
Compare DIV         : ok
Compare OR          : ok
Compare AND         : ok
Sequential Increment: ok
Solid Bits          : ok
Block Sequential    : ok
Checkerboard        : ok
Bit Spread          : ok
Bit Flip            : ok
Walking Ones        : ok
Walking Zeroes      : ok

Done.

使用以下命令显示memtesters退出代码(一切正常时为0):

$ echo $?

输出:

0