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. solrCloud+tomcat+zookeeper配置

    一.环境准备: Solr版本:4.7.0 下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/4.7.0 Tomcat版本:6.0.39 下载地 ...

  2. poj1887 Testing the CATCHER

    Testing the CATCHER Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13968   Accepted: 5 ...

  3. matrix(dp)

    matrix Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  4. hdu 1251 统计难题 初识map

    Problem Description Ignatius近期遇到一个难题,老师交给他非常多单词(仅仅有小写字母组成,不会有反复的单词出现),如今老师要他统计出以某个字符串为前缀的单词数量(单词本身也是 ...

  5. IT该忍者神龟Instant client required

    pply OS : Windows, Mac, Linux Apply Navicat Product : Navicat for Oracle, Navicat Premium Apply Navi ...

  6. Ext.net.DirectMethods

    http://www.ext.net.cn/forum.php?mod=viewthread&tid=1282&highlight=directmethod DirectMethod ...

  7. VMware 11安装Mac OS X 10.10 及安装Mac Vmware Tools(超详细),以及动态调整虚拟机硬盘大小

    先上一张效果图兴奋一下,博主穷屌丝一个,只能通过虚拟黑苹果体验下高富帅的生活,感觉超爽的,废话不多说的,直接上图了! 目录: 1.安装所需软件下载: 2.Mac OS X10.10 安装基本步骤: 3 ...

  8. mysql各版本区别

    MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会有几个版本的选择. 1. MySQL Community Server 社区版本,开源免费, ...

  9. Android ListView 常见问题与使用总结

    一.机制 ListView机制 - 先运行getCount.然后运行getView. 假设getCount返回0,不运行getView Gallery convertView不会复用.每次都返回NUL ...

  10. Java基础05 实施接口

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在封装与接口中,private关键字封装了对象的内部成员.经过封装,产品隐藏了内部 ...