美文网首页
预估mdtest写入文件数

预估mdtest写入文件数

作者: ypdai | 来源:发表于2019-03-01 22:11 被阅读0次

    title: 预估mdtest写入文件数

    前言

    大家都知道mdtest工具一般是用来测试文件系统处理元数据性能的,测试本地文件系统或分布式文件系统都可以。

    我们一般在开始测试之前都会设想测试模型,比如:

    1. 每个文件的大小是多少?4K还是512K或者其他?
    2. 目录的层次是多少?每个目录下放多少个文件?

    上面这些都可以通过mdtest工具参数去指定,mdtest提供了下面几个相关参数:

    • -b: 指定非叶子节点的分支个数
    • -z: 指定从根到叶子节点的深度
    • -I: 每个节点下的文件或目录数
    • -np:并发的线程数

    但是我们指定完上面的参数之后,并不知道这些参数一共会创建多少个文件、多少个目录。比如下面的命令:

    $ mpirun -host ceph01 --allow-run-as-root -np 8 mdtest -I 5000  -b 3 -z 10 -d /mnt/cephfs -C -F
    

    通常只有执行完这条测试命令之后,我们才能知道它创建了多少文件和多少目录。但是我们通常需要预先知道每条测试命令能创建多少文件和目录。

    脚本

    下面的脚本可以根据mdtest相关的参数,帮我们预测命令最后可以创建的文件数和目录数:

    # coding: utf-8
    import sys
    import argparse
    
    __author__ = 'ypdai'    
    
    parser = argparse.ArgumentParser()
    parser.add_argument("-b", required=True, type=int, dest="branch", default=1,
                        help="branching factor of hierarchical directory structure")
    parser.add_argument("-z", required=True, type=int, dest="zone", default=1,
                        help="depth of hierarchical directory structure")
    parser.add_argument("-I", required=True, type=int, dest="item", default=10, help="number of items per tree node")
    parser.add_argument("--np", required=True, type=int, dest="number", default=1, help=u"number of concurrent threads")
    
    args = parser.parse_args()
    
    n = 0
    m = 1
    
    
    def calc(branch, zone):
        global n, m
        if zone <= 0:
            return
        n = n + branch ** m
        m += 1
        return calc(branch, zone - 1)
    
    
    calc(args.branch, args.zone)
    
    ds = n + 2
    fs = (ds - 1) * args.item
    
    fs = fs * args.number if args.number >= 1 else fs
    
    print("dirs: %s" % ds)
    print("files: %s" % fs)
    

    使用示例

    就拿我们上给的mdtest命令做测试:

    $ python .\caclmdtest.py -b 3 -z 10 -I 5000 --np 8
    dirs: 88574
    files: 3542920000
    

    这样就可以知道,这组mdtest参数最后创建了3542920000个文件和88574个目录。

    相关文章

      网友评论

          本文标题:预估mdtest写入文件数

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