PC

[codeshare] a bash script for memory testing on linux


LINK TO CODE ON GITHUB

memtester is one of the better linux tools for stability testing memory on Linux, but it is unfortunately single threaded. So, I wrote a script (memtester_p) that will run and monitor several memtester instances in parallel for you by forking them.

memtester_p has several options/flags to control this process, including:

  • how many memtester instances to fork (default is the number of logical cpu cores).
  • how much memory to use (defined as either "percent of total system memory" or as "bytes per memtester instance"). Default is 80% of total system memory.
  • how many memtester loops to run (default is 3).
  • where to temporairly save the memtester output (default is a new tmpdir under /tmp).
  • whether or not to show the output (from all memtester instances) in the terminal

Additionally, calling memtester_p -s will check the status of all the memtester instances and display it in a compact and easy to understand form.


USAGE

# if you havent already, source the memtester_p function (choose one of the following)
source /path/to/memtester_p.bash
source <(curl https://raw.githubusercontent.com/jkool702/misc-public-scripts/refs/heads/main/memtester_p.bash)

# run memtester_p (all flags are optional and just shown as an example)
memtester_p -p 90 -l 4 -q

# check on status/progress of all memtester instances
memtester_p -s

The output for memtester_p -s will look something like the following (the foiillowing is for 28 parallel memtester instances, so each line has the test name + 28 values)

    Loop 1/3   
    Stuck Address ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Random Value ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare XOR ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare SUB ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare MUL ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare DIV ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare OR ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare AND ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Sequential Increment ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Solid Bits ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Block Sequential ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Checkerboard ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Bit Spread ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Bit Flip ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Walking Ones ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Walking Zeroes ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    8-bit Writes ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    16-bit Writes ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Loop 2/3   
    Stuck Address ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Random Value ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare XOR ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare SUB ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare MUL ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare DIV ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare OR ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Compare AND ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Sequential Increment ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Solid Bits ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Block Sequential ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Checkerboard ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok ok  
    Bit Spread 32 44 57 58 29 31 31 33 33 31 38 33 32 33 28 32 34 35 35 60 32 31 33 32 34 32 36 32  

Hopefully some here will find this useful. If you have questions/comments/suggestions or find a bug let me know.

Write A Comment