mmtests使用概要

4099 ワード

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ディレクトリの下に2つの異なる結果が得られます.次に、それらを比較し、コマンドを入力します(mmtestsディレクトリの下にあります):
 ./bin/compare-mmtests.pl -d work/log/ -b parallelio -n nozswap2G,zswap2G

パラメータの解釈
-d:テストファイルが存在するディレクトリ
-b:テストに使用するbenchmarkはconfigとwork/logで見つけることができます.
-n:比較するファイル名:これが前のテストで使用したパラメータです.

4.注意事項:


1)異なるカーネルの比較を行うには、同じカーネルのソースコードで2つのカーネルをコンパイルすることはできません.これにより、vmlinuxが1つしかありません.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