dwww Home | Manual pages | Find package

memtester(8)                  Maintenance Commands                 memtester(8)

NAME
       memtester - stress test to find memory subsystem faults.

SYNOPSIS
       memtester [-p PHYSADDR [-d DEVICE] [-u]] <MEMORY> [ITERATIONS]

DESCRIPTION
       memtester is an effective userspace tester for stress-testing the memory
       subsystem.   It is very effective at finding intermittent and non-deter-
       ministic faults.  Note that problems in other hardware areas  (overheat-
       ing CPU, out-of-specification power supply, etc.) can cause intermittent
       memory  faults,  so  it  is still up to you to determine where the fault
       lies through normal hardware diagnostic procedures; memtester just helps
       you determine whether a problem exists.

       memtester will malloc(3) the amount of memory  specified,  if  possible.
       If  this fails, it will decrease the amount of memory requested until it
       succeeds.  It will then attempt to mlock(3) this memory; if it cannot do
       so, testing will be slower and much less effective.   Run  memtester  as
       root so that it can mlock the memory it tests.

       Note  that  the maximum amount of memory that memtester can test will be
       less than the total amount of memory installed in the system; the  oper-
       ating system, libraries, and other system limits take some of the avail-
       able  memory.   memtester is also limited to the amount of memory avail-
       able to a single process; for example, on 32-bit machines with more than
       4GB of memory, memtester is still limited to less than 4GB.

       Note that it is up to you to know how much memory you can  safely  allo-
       cate for testing.  If you attempt to allocate more memory than is avail-
       able,  memtester should figure that out, reduce the amount slightly, and
       try again.  However, this can lead to memtester successfully  allocating
       and  mlocking essentially all free memory on the system -- if other pro-
       grams are running, this can lead to excessive swapping and  slowing  the
       system down to the point that it is difficult to use.  If the system al-
       lows  allocation of more memory than is actually available (overcommit),
       it may lead to a deadlock, where the system halts.  If the system has an
       out-of-memory process killer (like Linux), memtester or another  process
       may be killed by the OOM killer.

       So choose wisely.

OPTIONS
       -p PHYSADDR
              tells  memtester  to test a specific region of memory starting at
              physical address PHYSADDR (given in hex), by mmap(2)ing a  device
              specified by the -d option (below, or /dev/mem by default).  This
              is  mostly  of  use  to  hardware developers, for testing memory-
              mapped I/O devices and similar.  Note that the memory region will
              be overwritten during testing, so it is not safe to specify  mem-
              ory  which is allocated for the system or for other applications;
              doing so will cause them to crash.  If you absolutely must test a
              particular region of actual physical memory, arrange to have that
              memory allocated by your test software, and hold it in this allo-
              cated state, then run memtester on it with this option.

       -d DEVICE
              specifies the device to open with the -p option  above.   If  not
              supplied, /dev/mem is the default.

       -u     causes  memtester  to  open the device specified by the -d option
              above without the O_SYNC flag, which causes the system to use un-
              cached memory semantics on some systems.

       MEMORY the amount of memory to allocate and test, in  megabytes  by  de-
              fault.   You  can  include  a suffix of B, K, M, or G to indicate
              bytes, kilobytes, megabytes, or gigabytes respectively.

       ITERATIONS
              (optional) number of loops to iterate through.  Default is  infi-
              nite.

ENVIRONMENT
       If the environment variable MEMTESTER_TEST_MASK is set, memtester treats
       the  value  as  a  bitmask  of which tests (other than the stuck address
       test) to run.  The value can be specified in decimal, in octal  (with  a
       leading  0),  or  in  hexadecimal (with a leading 0x).  The specific bit
       values corresponding to particular tests may change from release to  re-
       lease; consult the list of tests in the source for the appropriate index
       values for the version of memtester you are running.  Note that skipping
       some  tests will reduce the time it takes for memtester to run, but also
       reduce memtester's effectiveness.

NOTE
       memtester must be run with root privileges to mlock(3) its pages.  Test-
       ing memory without locking the pages in place is  mostly  pointless  and
       slow.

EXIT CODE
       memtester's  exit  code is 0 when everything works properly.  Otherwise,
       it is the logical OR of the following values:

       x01    error allocating or locking memory, or invocation error

       x02    error during stuck address test

       x04    error during one of the other tests

AUTHOR
       Written by Charles Cazabon.

REPORTING BUGS
       Report bugs to <charlesc-memtester-bugs@pyropus.ca>.

COPYRIGHT
       Copyright © 2001-2024 Charles Cazabon
       This is free software; see the  file  COPYING  for  copying  conditions.
       There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PAR-
       TICULAR PURPOSE.

memtester 4                      November 2024                     memtester(8)

Generated by dwww version 1.16 on Tue Dec 16 07:46:50 CET 2025.