mdtest使用

mdtest说明

mdtest是一款针对服务器元数据处理能力的基准测试工具,可以用来模拟对文件或目录的open/stat/close操作,然后返回报告。
下载链接 https://sourceforge.net/projects/mdtest/

安装

  1. 安装依赖包
    安装openmpi,使用yum安装即可
    yum install openmpi openmpi-devel -y

  2. 下载mdtest压缩包
    mkdir -p <path_to_mdtest>/mdtest #创建用于存放mdtest的目录
    cd mdtest
    上传mdtest压缩包到该目录
    在这里插入图片描述
    tar -xvf mdtest-1.9.3.tgz #解压压缩包

  3. 环境变量配置
    在/root/.bashrc中添加openmpi的执行路径,为了方便后面也可以添加mdtest的路径到环境变量中

	export PATH="$PATH:/usr/lib64/openmpi/bin/"
	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/openmpi/lib/"
	export PATH=$PATH:<path_to_mdtest>/mdtest      #添加上一步中创建的mdtest的路径

使环境变量生效

	source /root/.bashrc
  1. 修改MakeFile文件
    步骤2中,解压mdtest压缩包之后
    在这里插入图片描述
    修改MakeFile文件
    vim MakeFile
    在这里插入图片描述
    mdtest: mdtest.c
    mpicc -Wall -D $(OS) $(LARGE_FILE) $(MDTEST_FLAGS) -g -o mdtest mdtest.c -lm
    注:第二行的缩进,需要使用Tab来进行,不能使用空格

  2. 编译
    make
    在这里插入图片描述
    完成之后,在该目录下,就有多出来可执行的mdtest文件,且支持mpirun调用
    在这里插入图片描述

命令

mdtest -h
在这里插入图片描述
-b: 目录树的分支参数
-B: 不同的阶段没有隔离 (create/stat/remove)
-c: 共同创建: task 0 完成所有的创建和删除工作
-C: 只创建文件或目录,不作删除;
-d: 指出测试运行的目录(若不指定,则默认当前目录)
-D: 只对目录操作进行测试(不包括文件)
-e: 从每个文件读出的文件大小
-E: 只读取文件
-f: 首先运行的任务号;
-F: 只创建文件,没有目录
-h: 输出帮助信息
-i: 测试迭代循环次数
-I: 每个树节点包含的项目
-l: 最后运行的任务号
-L: 只在目录树的“叶子”层创建文件/目录;
-n: 每个任务需要在每棵树中create/stat/remove的文件/目录数
-N: 遍历时指定和相邻任务的跨度
-p: 每次迭代之间延时(以秒计算)
-r: 删除文件/目录
-R: 随机遍历文件/目录
-s: 每次测试的任务数的跨度
-S: 共享文件访问(只针对文件操作)
-t: 记录特定目录的时间开销
-T: 只统计文件、目录;
-u: 为每个任务指定工作目录
-v: 详细说明(每个实例的选择加一)
-w: 写到每个文件的字节数bytes
-y: 再写执行完后同步文件到磁盘(同步写)
-z: 目录树的深度
笔记:

  • -N通过将跨步设置为“每个节点的任务”来允许“读取邻居”方法。 不要将它与-B一起使用,因为它会创建竞争条件。
  • -d允许格式为’-d fullpath1 @ fullpath2 @ fullpath3’的多个路径
  • -B允许每个任务自行计时。 汇总结果反映了这一变化。
  • -n和-I不能一起使用。 -I指定每个树节点创建的文件/目录的数量,而-n指定整个树上创建的文件/目录的总数。 使用-n时,整数除法用于确定每个树节点的文件/目录数。 (例如,如果-n为10且有4个树节点(z = 1和b = 3),则每个树节点将有2个文件/目录。)
  • -R和-T可以分开使用。 -R仅表示如果要对文件/目录进行统计,那么它们将被随机统计。

常用命令:
mdtest -z 2 -b 3 -I 10 -d /mnt/test
目录树深度为2,每个节点分支为3,每个节点包含10个文件,测试目录为/mnt/test
总节点为1+3+9=13个,每个节点包含10个文件,总文件数为130
在这里插入图片描述
mdtest -z 3 -b 4 -I 10 -d /mnt/test
目录树深度为3,每个节点分支为4,每个节点包含10个文件,测试目录为/mnt/test
总节点为1+4+16+64=85个,每个节点包含10个文件,总文件数为850

mdtest -n 10000 -i 3 -d /mnt/test
测试10000个文件,测试3次,测试目录为/mnt/test

添加-F,-C,-E,-D等命令,单独测试某些功能
可以使用mpirun调用mdtest命令,进行多线程多客户端运行

增加并行的运行节点
[root@host1 ~]# vim /etc/openmpi-x86_64/openmpi-default-hostfile
添加
host2 slots=1
host3 slots=1
特别注意加slots 这个是配置权重的,如果不配置,第一条有默认权重,就无法在数目小时进行均衡操作

检查是否配置成功,np为操作线程数
[root@lab8105 ~]# mpirun --allow-run-as-root -np 2 hostname
host2
host3

如果想单机执行多进程,可以用-host指定主机
[root@lab8105 ~]# mpirun -host host2 --allow-run-as-root -np 2 mdtest -I 10 -z 3 -b 2 -d /mnt/test/

输出结果

在这里插入图片描述
Directory creation 目录的创建
Directory stat 目录创建统计
Directory removal 目录的删除
File creation 文件的创建
File stat 文件的统计
File read 文件的读取
File removal 文件的删除
Tree creation 目录树的创建
Tree removal 目录树的删除
注:Max(最大)Min(最小)Mean(平均),其中Std Dev表示标准差,时间单位是IOPS。所有的创建,统计,读取,删除,都是一个性能

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值