美文网首页
预估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写入文件数

    title: 预估mdtest写入文件数 前言 大家都知道mdtest工具一般是用来测试文件系统处理元数据性能的,...

  • 最小化I/O

    每次应用程序执行与I/O相关的任务(如写入文件数据)时,都会使系统脱离空闲状态。通过减少数据写入、聚合写入、明智地...

  • 搜企网爬虫作业

    作业要求 (1)csv文件数据写入(2)mysql 操作,python mysql操作 这个需要安装mysql以及...

  • Java 21-1 IO技术输出输入流(缓冲 异常处理)

    需求:怎么操作文件数据使用io流对象 而且文件数据都是字节存在学习了可以操作文件的字节流out是写入文件 in...

  • python作业-20170601

    作业:(1)csv文件数据写入(2)mysql 操作,python mysql操作 这个需要安装mysql以及p...

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

    mdtest说明 mdtest是一款针对服务器元数据处理能力的基准测试工具,可以用来模拟对文件或目录的open/s...

  • Spark History Server自动删除日志文件

    背景 公司的计算平台上,写入spark-history目录日志文件数超过设定阈值(1048576),导致任务失败。...

  • cmu440(2)Distributed File System

    客户端缓存 我们缓存什么? 只读文件数据和目录数据 由客户机写入的数据 什么时候写入服务器? 如果客户机宕机了,会...

  • 文件 File

    文件 1. 文件的一些常用方法 2. 读取和写入文件数据 2.1 以字节流方式 2.1.1 读取数据 2.1.2 ...

  • Python 将数据写入文件(txt、csv、excel)

    一、将列表数据写入txt、csv、excel 1、写入txt 2、写入csv 3、写入excel 二、将字典写入文...

网友评论

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

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