Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
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-determin-
     istic faults.  Note that problems in other hardware areas (overheating 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 suc-
     ceeds.  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 operating sys-
     tem, libraries, and other system limits take some of the available  memory.
     memtester	is  also  limited  to the amount of memory available 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 allocate
     for testing.  If you attempt to allocate more  memory  than  is  available,
     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 programs 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 allows allocation of
     more memory than is actually available (overcommit), it may lead to a dead-
     lock, 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 overwrit-
	    ten during testing, so it is not safe to specify memory which is al-
	    located for the system or for  other  applications;  doing	so  will
	    cause  them  to crash.  If you absolutely must test a particular re-
	    gion of actual physical memory, arrange to have  that  memory  allo-
	    cated  by  your  test software, and hold it in this allocated state,
	    then run memtester on it with this option.

     -d DEVICE
	    specifies the device to open with the -p option above.  If not  sup-
	    plied, /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 uncached
	    memory semantics on some systems.

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

     ITERATIONS
	    (optional) number of loops to iterate through.  Default is infinite.

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 corre-
     sponding to particular tests may change from release  to  release;  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.	 Testing
     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 (C) 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 PARTICULAR
     PURPOSE.

memtester 4			  November 2024 		    memtester(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=memtester&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help