软件介绍

mdstest是软件的元数据操作基准测试工具,用来模拟对文件或者目录的open、stat、close操作,然后报告性能

下载软件压缩包:

yum install openmpi openmpi-devel -y
在/root/.bashrc中添加(注意也要添加mdtest的路径)
export PATH=$PATH:/usr/lib64/openmpi/bin/ source /root/.bashrc
下载
[root@lab8105 ~]# wget http://sourceforge.net/projects/mdtest/files/latest/download
解压
[root@lab8105 ~]# tar -xvf mdtest-1.9.3.tgz
修改makefile:
mdtest: mdtest.c
mpicc -Wall -D $(OS) $(LARGE_FILE) $(MDTEST_FLAGS) -g -o mdtest mdtest.c -lm

参数如下:

Usage:  mdtest [-b #] [-B] [-c] [-C] [-d testdir] [-D] [-e] [-E] [-f first] [-F]
[-h] [-i iterations] [-I #] [-l last] [-L] [-n #] [-N #] [-p seconds]
[-r] [-R[#]] [-s #] [-S] [-t] [-T] [-u] [-v] [-V #] [-w #] [-y]
[-z #] -b: branching factor of hierarchical directory structure
目录树的分支参数
-B: no barriers between phases (create/stat/remove)
不同的阶段没有隔离 (create/stat/remove);
-c: collective creates: task 0 does all creates and deletes
共同创建: task 0 完成所有的创建和删除工作;
-C: only create files/dirs
只创建文件或目录,不作删除;
-d: the directory in which the tests will run
指出测试运行的目录(若不指定,则默认当前目录);
-D: perform test on directories only (no files)
只对目录操作进行测试(不包括文件);
-e: number of bytes to read from each file
从每个文件读出的文件大小
-E: only read files
只读取文件
-f: first number of tasks on which the test will run
首先运行的任务号;
-F: perform test on files only (no directories)
只创建文件,没有目录;
-h: prints help message
输出帮助信息
-i: number of iterations the test will run
测试迭代循环次数;
-I: number of items per tree node
每个树节点包含的项目
-l: last number of tasks on which the test will run
最后运行的任务号
-L: files/dirs created only at leaf level
只在目录树的“叶子”层创建文件/目录;
-n: every task will create/stat/remove # files/dirs per tree
每个任务需要再每棵树中create/stat/remove的文件/目录数;
-N: stride # between neighbor tasks for file/dir stat (local=0)
遍历时指定和相邻任务的跨度
-p: pre-iteration delay (in seconds)
每次迭代之间延时(以秒计算)
-r: only remove files/dirs
删除文件/目录
-R: randomly stat files/dirs (optional seed can be provided)
随机遍历文件/目录 ;
-s: stride between the number of tasks for each test
每次测试的任务数的跨度
-S: shared file access (file only, no directories)
共享文件访问(只针对文件操作);
-t: time unique working directory overhead
记录特定目录的时间开销
-T: only stat files/dirs -u: unique working directory for each task
为每个任务指定工作目录;
-v: verbosity (each instance of option increments by one) -V: verbosity value
-w: number of bytes to write to each file
写到每个文件的字节数
-y: sync file after write completion
再写执行完后同步文件到磁盘(同步写)
-z: depth of hierarchical directory structure
目录树的深度; NOTES:
* -N allows a "read-your-neighbor" approach by setting stride to
tasks-per-node. Do not use it with -B, as it creates race conditions.
允许"read-your-neighbor" 方法
* -d allows multiple paths for the form '-d fullpath1@fullpath2@fullpath3'
可以指定多个测试路径,'-d fullpath1@fullpath2@fullpath3'
* -B allows each task to time itself. The aggregate results reflect this
change.
允许每个任务对自己进行计时;
* -n and -I cannot be used together. -I specifies the number of files/dirs
created per tree node, whereas the -n specifies the total number of
files/dirs created over an entire tree. When using -n, integer division is
used to determine the number of files/dirs per tree node. (E.g. if -n is
10 and there are 4 tree nodes (z=1 and b=3), there will be 2 files/dirs per
tree node.) * -R and -T can be used separately. -R merely indicates that if files/dirs
are going to be stat'ed, then they will be stat'ed randomly.
不能同时使用,因为指定了每个树节点的文件/目录数量,而-I指定的是整棵树的文件/目录数量。 Illustration of terminology: Hierarchical directory structure (tree) =======
| | (tree node)
=======
/ | \
------ | ------
/ | \
======= ======= =======
| | | | | | (leaf level)
======= ======= ======= In this example, the tree has a depth of one (z=1) and branching factor of
three (b=3). The node at the top of the tree is the root node. The level
of nodes furthest from the root is the leaf level. All trees created by
mdtest are balanced.
这个例子中,目录树深度为1(z=1),每个节点分支为3(b=3).最上面的节点为根节点,

关于openmpi的软件的使用

openmpi是并行的运行程序,配置的时候需要注意下

增加并行的运行节点
[root@lab8105 ~]# vim /etc/openmpi-x86_64/openmpi-default-hostfile
添加
lab8105 slots=1
lab8106 slots=1
特别注意加slots 这个是配置权重的,如果不配置,第一条有默认权重,就无法在数目小时进行均衡操作
检查是否配置成功,np为操作线程数
[root@lab8105 ~]# mpirun --allow-run-as-root -np 2 hostname
lab8105
lab8106
如果想单机执行多进程,可以用-host指定主机
[root@lab8105 ~]# mpirun -host lab8105 --allow-run-as-root -np 2 hostname

单机下多进程测试

2 task on 1 node
[root@lab8105 ~]# mpirun -host lab8105 --allow-run-as-root -np 2 mdtest -I 10 -z 5 -b 2 -d /mnt/zptest/ -t -c 2
-- started at 01/27/2015 21:06:23 -- mdtest-1.9.3 was launched with 2 total task(s) on 1 node(s)
Command line used: mdtest -I 10 -z 5 -b 2 -d /mnt/zptest/ -t -c 2
Path: /mnt/zptest
FS: 6.5 TiB Used FS: 59.2% Inodes: 0.6 Mi Used Inodes: 100.0% 2 tasks, 1260 files/directories SUMMARY: (of 1 iterations)
Operation Max Min Mean Std Dev
--------- --- --- ---- -------
Directory creation: 312.088 312.088 312.088 0.000
Directory stat : 73447.245 73447.245 73447.245 0.000
Directory removal : 255.755 255.755 255.755 0.000
File creation : 638.824 638.824 638.824 0.000
File stat : 86747.366 86747.366 86747.366 0.000
File read : 84434.232 84434.232 84434.232 0.000
File removal : 207.545 207.545 207.545 0.000
Tree creation : 39.062 39.062 39.062 0.000
Tree removal : 46.971 46.971 46.971 0.000 -- finished at 01/27/2015 21:06:43 --

多机并发测试

如下显示的2 task on 2 node

[root@lab8105 ~]#  mpirun  --allow-run-as-root -np 2 mdtest -I 10  -z 5 -b 2 -d /mnt/zptest/ -t -c 2
-- started at 01/27/2015 21:04:35 -- mdtest-1.9.3 was launched with 2 total task(s) on 2 node(s)
Command line used: mdtest -I 10 -z 5 -b 2 -d /mnt/zptest/ -t -c 2
Path: /mnt/zptest
FS: 6.5 TiB Used FS: 59.2% Inodes: 0.6 Mi Used Inodes: 100.0% 2 tasks, 1260 files/directories SUMMARY: (of 1 iterations)
Operation Max Min Mean Std Dev
--------- --- --- ---- -------
Directory creation: 312.355 312.355 312.355 0.000
Directory stat : 1611.000 1611.000 1611.000 0.000
Directory removal : 127.333 127.333 127.333 0.000
File creation : 309.295 309.295 309.295 0.000
File stat : 113257.534 113257.534 113257.534 0.000
File read : 203458.057 203458.057 203458.057 0.000
File removal : 98.523 98.523 98.523 0.000
Tree creation : 36.566 36.566 36.566 0.000
Tree removal : 20.191 20.191 20.191 0.000 -- finished at 01/27/2015 21:05:12 --

关于目录生成的问题:

这个是 -z 2 -b 3

[root@lab8106 mnt]# ls mdtest2/#test-dir.0/mdtest_tree.0/
mdtest_tree.1 mdtest_tree.2 mdtest_tree.3
[root@lab8106 mnt]# ls mdtest2/#test-dir.0/mdtest_tree.0/mdtest_tree.1/
mdtest_tree.4 mdtest_tree.5 mdtest_tree.6

这个是以这个目录开始的

[root@lab8106 mnt]# ls mdtest2/#test-dir.0/mdtest_tree.0/

mdtest测试工具的更多相关文章

  1. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

  2. linux压力测试工具stress

    最近给PASS平台添加autoscaling的功能,根据服务器的负载情况autoscaling,为了测试这项功能用到了stress这个压力测试工具,这个工具相当好用了.具体安装方式就不说了.记录下这个 ...

  3. [.NET] WebApi 生成帮助文档及顺便自动创建简单的测试工具

    ==========最终的效果图========== ==========下面开始干活:生成帮助文档========== 一.创建 WebApi 项目 二.找到 HelpPageConfig.cs 并 ...

  4. RabbitMQ调试与测试工具-v1.0.1 -提供下载测试与使用

    最近几天在看RabbitMQ,所以发了两天时间写了一个调试和测试工具.方便使用. 下载地址:RabbitMQTool-V1.0.1.zip

  5. HTTP压力测试工具

    HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的P ...

  6. 微软压力测试工具 web application stress

    转自 http://www.cnblogs.com/tonykan/p/3514749.html lbimba  铜牌会员 这里给广大的煤油推荐一个web网站压力测试工具.它可以用来模拟多个用户操作网 ...

  7. WebService如何调试及测试工具

    http://www.cnblogs.com/zfanlong1314/archive/2012/04/06/2434788.html 通常,我们在Visual Studio里调试ASP.NET网站, ...

  8. Android高手速成--第四部分 开发工具及测试工具

    第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...

  9. Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍

    一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...

随机推荐

  1. lumen-ioc容器测试 (4)

    lumen-ioc容器测试 (1) lumen-ioc容器测试 (2) lumen-ioc容器测试 (3) lumen-ioc容器测试 (4) lumen-ioc容器测试 (5) lumen-ioc容 ...

  2. .net core迁移实践:项目文件csproj的转换

    随着net core的不断更新和生产可用,越来越多的人把现有的应用迁移和部署到net core平台.本文将分享迁移过程中的一个环节,给大家做一下参考. 背景说明 先来介绍一下什么是SDK样式的文件结构 ...

  3. PHP程序员必须会的 45 个PHP 面试题

    Q1: == 和 === 之间有什么区别? 话题: PHP困难: 如果是两个不同的类型,运算符 == 则在两个不同的类型之间进行强制转换 === 操作符执行'类型安全比较' 这意味着只有当两个操作数具 ...

  4. 尝试从零开始构建我的商城 (一) :使用Abp vNext快速一个简单的商城项目

    尝试从零开始构建我的商城 (一) :使用Abp vNext快速搭建一个简单的项目 前言 GitHub地址 https://github.com/yingpanwang/MyShop 此文目的 本文将尝 ...

  5. docker在win7下的使用

    1,安装 win7下需要安装docker-toolbox,然后通过Docker Quickstart Terminal运行 2,加速 直接pull的话是拉取的docker hub上的镜像,速度非常慢, ...

  6. vue table切换 (不使用路由功能)

    背景: 一个小场景,感觉使用路由功能太浪费了,考虑用一个简单的类控制 实例代码 //v-for 实现循环<ul class="nav-bar"> <li v-fo ...

  7. CentOS7 Nginx-1.10.3编译安装

    cat > nginx.sh <<EOF #停止apache,避免抢占端口号 systemctl stop httpd #创建nginx运行账户,非登录用户,不创建家目录 usera ...

  8. JUC---12深入理解CAS

    一.什么是CAS Compare and Swap, 翻译成比较并交换,是java.util.concurrent.atomic包下的类里面的CompareAndSet()方法:java.util.c ...

  9. Hbase实用技巧:全量+增量数据的迁移方法

    摘要:本文介绍了一种Hbase迁移的方法,可以在一些特定场景下运用. 背景 在Hbase使用过程中,使用的Hbase集群经常会因为某些原因需要数据迁移.大多数情况下,可以跟用户协商用离线的方式进行迁移 ...

  10. JDK1.8特性(更新中..)

    "15,5,9,17,99,107,47"转List<Long> List<Long> linkCompanyIds = Arrays.asList(&qu ...