当前位置: 首页 > 工具软件 > memtester > 使用案例 >

Linux压力测试之memtester

赵昊阳
2023-12-01

Memtester介绍

Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和循环次数, 可以对系统现有的内存进行项目的测试。

基本用法

查看下帮助信息

[root@Sweep:/oem]# memtester -h
memtester version 4.3.0 (64-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
memtester: invalid option -- 'h'

Usage: memtester [-p physaddrbase [-d device]] <mem>[B|K|M|G] [loops]

loops指循环的次数

用法举例

下面将测试1M内存,循环2次

[root@Sweep:/oem]# memtester 1 2
memtester version 4.3.0 (64-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 1MB (1048576 bytes)
got  1MB (1048576 bytes), trying mlock ...locked.
Loop 1/2:
  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         
  8-bit Writes        : ok
  16-bit Writes       : ok

Loop 2/2:
  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         
  8-bit Writes        : ok
  16-bit Writes       : ok

Done.

测试脚本

为方便测试,查看测试结果,写了个脚本

[root@Sweep:/oem]# cat memtester.sh 
#!/bin/sh
mem=$1
loop=$2
i=0
while true
do
	echo "========== test: $i loops =============="
	thread=`ps | grep 'memtester' | grep -v 'memtester.sh'| grep -v 'grep' `
	if [ x"$thread" = x"" ];then
		i=`expr $i + 1`
		echo -e "[loops: $i]\n\n" > /oem/memtester_time.txt
		memtester $mem 1 >> /oem/memtester_time.txt & 
		if [ $? = 0 ];then
			echo "test success!" >> /oem/memtester_time.txt
		else 
			echo "test fail!" >> /oem/memtester_time.txt
		fi
	fi
	if [ "$i" = "$loop" ];then
		exit 0
	fi
done	

该脚本第一个参数是内存大小,第二个参数是循环的次数。执行脚本将会保存最后一次的测试记录。

 类似资料: