美文网首页
2020-08-08 mdtest - 元数据能力测试工具

2020-08-08 mdtest - 元数据能力测试工具

作者: 昨天今天下雨天1 | 来源:发表于2020-08-08 08:52 被阅读0次

    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。所有的创建,统计,读取,删除,都是一个性能

    相关文章

      网友评论

          本文标题:2020-08-08 mdtest - 元数据能力测试工具

          本文链接:https://www.haomeiwen.com/subject/yticdktx.html