mmtests使用简介

1.简介


mmtests是一个可配置的测试套件,可以被MM开发者用来进行一个常规测试。理想情况下,它可以与LTP,xfstests等测试工具结合起来实现自动化测试。


2.软件组织


run-mmtests.sh脚本用于运行测试,这个脚本会读取config文件,脚本接受一个参数,通常情况下,这个参数表明测试的名字,一般情况下它表明了内核的配置情况,例如

$:./run-mmtests.sh zswap2G

其中,每一种测试有对应的config文件,config文件在configs目录下面,测试之前,需要执行cp configs/oneconfig config,然后run-mmtests.sh会读取这个config中的内容,完成相关的测试。

其中config文件的部分内容如下:

 

DIRNAME=`dirname $0`

SCRIPTDIR=`cd "$DIRNAME" && pwd`

MEMTOTAL_BYTES=`free -b | grep Mem: | awk '{print $2}'`

NUM_CPU=$(grep -c '^processor' /proc/cpuinfo)



# MM Test Parameters

export MMTESTS="parallelio"

export SKIP_WARMUP=yes



# Profiling parameters

export SKIP_NOPROFILE=no

export SKIP_FINEPROFILE=yes

export SKIP_COARSEPROFILE=yes

export OPROFILE_REPORT_ANNOTATE=no



# Fixups

if [ "`which check-confidence.pl 2> /dev/null`" = "" ]; then

	export PATH=$SCRIPTDIR/bin:$PATH

fi

if [ "`which record-extfrag 2> /dev/null`" = "" ]; then

	export PATH=$SCRIPTDIR/fraganalysis:$PATH

fi

if [ "`which oprofile_report.sh 2> /dev/null`" = "" ]; then

	export PATH=$SCRIPTDIR/vmr/bin:$PATH

fi



# Machine configuration

# Swap configuration can be one of default, partitions, swapfile, NFS

#export VM_DIRTY_RATIO=20

export VM_TRANSPARENT_HUGEPAGES_DEFAULT=default

export SWAP_CONFIGURATION=default

export SWAP_PARTITIONS=

export SWAP_SWAPFILE_SIZEMB=$((MEMTOTAL_BYTES/1048576))

export SWAP_NFS_MOUNT=192.168.10.7:/exports/`hostname`-swapfile

export SWAP_NBD_DEVICE=/dev/nbd0

export SWAP_NBD_HOST=mcp

export SWAP_NBD_PORT=10001

#export MEMCG_SIZE=$((MEMTOTAL_BYTES/2))



# Test disk to setup (optional)

#export TESTDISK_RAID_PARTITIONS="/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1"

#export TESTDISK_RAID_DEVICE=/dev/md0

#export TESTDISK_RAID_OFFSET=63

#export TESTDISK_RAID_SIZE=250019532

#export TESTDISK_RAID_TYPE=raid0

#export TESTDISK_PARTITION=/dev/sda6

#export TESTDISK_FILESYSTEM=ext3

#export TESTDISK_MKFS_PARAM="-f -d agcount=8"

#export TESTDISK_MOUNT_ARGS=""

#

# Test NFS disk to setup (optional)

#export TESTDISK_NFS_MOUNT=192.168.10.7:/exports/`hostname`

#

# Test NBD disk to setup (optional)

#export TESTDISK_NBD_DEVICE=/dev/nbd0

#export TESTDISK_NBD_HOST=mcp

#export TESTDISK_NBD_PORT=100`ifconfig eth0 | sed -n 2p | cut -d ":" -f2 | cut -d " " -f1 | cut -d "." -f4`



# List of monitors

export RUN_MONITOR=yes

export MONITORS_ALWAYS=

export MONITORS_PLAIN=

export MONITORS_GZIP="proc-vmstat top slabinfo"

export MONITORS_WITH_LATENCY="vmstat iostat"

export MONITOR_UPDATE_FREQUENCY=10


其中MMtest parameter 和List of monitors比较关键,分别是测试所用的benchmark和monitor,这个和测试的结果有关,产生的测试结果位于mmtests/work/log之下

 

测试方式:在mmtests目录之下,执行

$: ./run-mmtests.sh zswap2G


3.对比测试结果


一般情况下,我们已经对内核进行了的不同配置,在相关的环境下进行测试得到了两组不同的结果,这些测试结果在mmtests/work/log目录之下,接下来要作的工作就是比较它们,输入命令(依然在mmtests目录之下):

 

 ./bin/compare-mmtests.pl -d work/log/ -b parallelio -n nozswap2G,zswap2G

参数解释

 

-d: 测试文件所在目录

-b:测试所用的benchmark,在config和work/log之中都可以找到

-n:要对比的文件名字:这个就是在上一步的测试中我们所使用的参数


4.注意事项:


1)要进行不同内核的比较,不能用同一份内核源码编译两个内核,这样会导致只有一份vmlinux,systemtap对于原来安装的内核因为无法找到对应的Vmlinux而无法运行

2)运行mmtests之前,可以监察systemtap是否安装成功:

 

stap -ve 'probe begin { log("hello world") exit() }'

如果输出hello world,说明是正常的

3)注意内核参数的配置

 

zswap.enabled=1 zswap.compressor=lzo

mem=

 


本文来源:谁不小心的CSDN博客 mmtests使用简介

外部参考http://marc.info/?l=linux-mm&m=134702176004919&w=2

http://marc.info/?l=linux-kernel&m=136870044323912&w=2

http://marc.info/?l=linux-mm&m=137229863514619&w=2


 

你可能感兴趣的:(test)