• 测试cephfs写入海量文件


    前言

    测试cephfs的写入大量文件,通过mdtest写入1K大小的文件1亿个,每个目录里面文件为1万,目录总数为1万,总文件数目就为1亿了

    写入的命令

    mdtest -C -F -L -z 4 -b 10 -I 10000 -d /mnt/1yi/ -w 1024
    
    • -C 只创建
    • -F 只创建文件
    • -L 只在叶子层目录创建文件
    • -z 目录深度层级为4
    • -b 每个树下面子目录为10
    • -I 指定目录里面的文件数目
    • -w指定文件大小为1K
      每层的目录数目

    1,10,100,1000,10000

    统计写入的情况

    通过扩展属性统计

    [root@lab101 #test-dir.0]# getfattr -d -m ceph.dir.* mdtest_tree.0/
    # file: mdtest_tree.0/
    ceph.dir.entries="10"
    ceph.dir.files="0"
    ceph.dir.rbytes="1000307712"
    ceph.dir.rctime="1600762346.09161429944"
    ceph.dir.rentries="1001670"
    ceph.dir.rfiles="990559"
    ceph.dir.rsubdirs="11111"
    ceph.dir.subdirs="10"
    

    参数解析

    ceph.dir.entries 指定目录下面文件和目录总个数
    ceph.dir.files  指定目录下面没有文件
    ceph.dir.rbytes  指定目录下面的文件总文件容量为1000307712 bytes
    ceph.dir.rctime  目录的访问时间戳
    ceph.dir.rentries  目录下面的文件和目录的总个数
    ceph.dir.rfiles  目录下面的文件的个数
    ceph.dir.rsubdirs 目录下面的子目录总个数(递归统计)
    ceph.dir.subdirs   目录下面的子目录的个数(一层的)
    

    mds内存占用统计

    200万文件 内存3.3G
    300万文件 内存4.3G

    统计脚本

    [root@lab101 ~]# cat getmdsmem.sh 
    #! /bin/sh
    
    while [ 2 > 1 ]
    do
        mem=`ps -p 49808  -o rsz|tail -n 1`
        file_num=`getfattr -d -m ceph.dir.*  /mnt/1yi/|grep ceph.dir.rfiles|cut -d "=" -f 2|cut -d """ -f 2`
        date=`date "+%Y%m%d%H%M%S"` 
        echo $date,$file_num,$mem>>/opt/recode.txt
        
        sleep  2
    done  
    
    
  • 相关阅读:
    java定时任务接口ScheduledExecutorService
    spring InitializingBean接口
    spring aop 的一个demo(未完,待完善)
    Spring ApplicationContextAware获取上下文
    Spring ProxyFactory
    搭建maven+spring+mybatis工程
    spring jdbcTemplate源码剖析
    chrome插件
    基于分支限界法的旅行商问题(TSP)一
    利用分支限界法求解单源最短路(Dijkstra)问题
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13712944.html
Copyright © 2020-2023  润新知