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

mmtests使用简介的更多相关文章

  1. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  2. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  3. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  4. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  5. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  6. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  7. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  8. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  9. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

随机推荐

  1. 开发板ip设置

    vi /etc/init.d/rcS 在其中加入 ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up 就可以了

  2. 一步一步重写 CodeIgniter 框架 (8) —— 视图的嵌套输出与返回

    视图函数在控制器中通过 $this->load-view() 来调用,从而输出 html,有时候为了调试或附加处理的需要,我们需要打印出这些输出,而不是直接通过浏览器输出,这在 php 中是通过 ...

  3. windows下以指定用户访问SMB服务器进行读写

    需求:最近要开发某系统前端界面,但是该系统是部署在linux服务器上,前端是用php开发,实时调试运行需要linux下系统环境支持, 每次修改都需要手动传到服务器上,尤其是debug阶段,每修改一点就 ...

  4. Android PopupWindow显示位置和显示大小

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3l1YW41MTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  5. 插件化—配置xml的辅助测试

    1.xml文件,xml文件在res/xml目录下 <?xml version="1.0" encoding="utf-8"?> <infos& ...

  6. 2008r2 显示桌面图标

  7. Eclispse 换主题、皮肤、配色,换黑色主题护眼

    链接地址:http://jingyan.baidu.com/article/6c67b1d68c03be2787bb1ed6.html Eclipse写android代码时,默认的文本和框架都是白色, ...

  8. BZOJ 4143: [AMPPZ2014]The Lawyer( sort )

    水题... 排序搞出每天的会议有哪些, 然后再按照会议的开始时间和结束时间排序, 最晚开始的和最早结束的会议不是同一场而且最晚开始的时间>最早结束的会议就有可能方案 -------------- ...

  9. AOP 面向方面的编程 Aspect Oriented Programing --第一次听说呢,汗!

    http://wayfarer.cnblogs.com/articles/241024.html 抄在这里,方便复习! AOP技术基础   1.引言2.AOP技术基础 3.Java平台AOP技术研究4 ...

  10. CentOS安装postgresql 9.4

    第一步:在CentOS6.5下安装Postgresql 1. 安装PostgreSQL源 # yum install http://yum.postgresql.org/9.4/redhat/rhel ...