前言

测试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

测试cephfs写入海量文件的更多相关文章

  1. C++简单使用Jsoncpp来读取写入json文件

    一.源码编译 C++操作json字符串最好的库应该就是jsoncpp了,开源并且跨平台.它可以从这里下载. 下载后将其解压到任意目录,它默认提供VS2003和VS2010的工程文件,使用VS2010可 ...

  2. 『动善时』JMeter基础 — 37、将JMeter测试结果写入Excel

    目录 1.环境准备 (1)引入操作Excel文件的基础JAR包 (2)引入封装自定义操作Excel文件的JAR包 2.准备测试需要的数据 3.测试结果写入Excel演示 (1)测试计划内包含的元件 ( ...

  3. 【.net 深呼吸】写入日志文件

    记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看:如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中. 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的 ...

  4. java写入excel文件poi

    java写入excel文件 java写入excel文件poi,支持xlsx与xls,没有文件自动创建 package com.utils; import java.io.File; import ja ...

  5. CS0016: 未能写入输出文件的解决方法

    编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727 \Temporary ASP.NET Files\roo ...

  6. IIS发布网站:CS0016: 未能写入输出文件的解决方法

    “/”应用程序中的服务器错误.-------------------------------------------------------------------------------- 编译错误 ...

  7. 使用PHP文件锁写一个多个请求同时并发写入一个文件,要求不脏读、数据不丢失

    使用PHP文件锁写一个多个请求同时并发写入一个文件,要求不脏读.数据不丢失. //并发文件操作 function filehandle($filename,$data){ $start = 0; $e ...

  8. xml文件生成方式一(字符串拼接,将多实体类对象写入xml文件)

    1.xml文件生成,拼接字符串使用StringBuffer或StringBuilder 2.拼接好后写入文件即可,将多个实体类写入xml文件 3.这种方式比较简单,但是操作也比较麻烦 4.下面是我的代 ...

  9. 从网络上获取图片,并写入excel文件

    package com.weChat.utils; import com.manage.utils.DateUtil;import com.manage.utils.MD5Util;import or ...

随机推荐

  1. c++11 R+字符串

    R+字符串 prefix(optional) R"delimiter(raw_characters)delimiter" (6) (since C++11) C++11引入了原始字 ...

  2. centos8平台安装gitosis服务

    一,git服务器端:准备gitosis需要的各依赖软件 1,确认openssh是否存在?如不存在,以下列命令进行安装 [root@yjweb ~]# yum install openssh opens ...

  3. matplotlib直方图

    import matplotlib.pyplot as plt import matplotlib as mpl from matplotlib.font_manager import FontPro ...

  4. JavaSE学习笔记03流程控制

    Java流程控制 1.顺序结构 java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句往下执行. 顺序结构是最简单的算法结构,它是任何一个算法都离不开的一种基本算法结构. 2. 选择结构 ...

  5. 【应用服务 App Service】发布到Azure上的应用显示时间不是本地时间的问题,修改应用服务的默认时区

    问题情形 应用程序发布到App Service后,时间显示不是北京时间,默认情况为UTC时间,比中国时间晚 8 个小时. 详细日志 无 问题原因 Azure 上所有的服务时间都采用了 UTC 时间. ...

  6. Java8中Stream 的一些用法

    数据结构和数据准备 @Data @AllArgsConstructor @NoArgsConstructor static class StreamItem { Integer id; String ...

  7. Linux基础命令列表

    命令列表 A alias apt apt-get arp -n -s arping ab B bc basename bash -n -x bzip2 bunzip2 bzcat blkid brct ...

  8. H5移动端实现图片上传

    转至 :https://blog.csdn.net/qq_37610423/article/details/84319410 效果图: 我在用这个的时候发现博主少写了一些东西,导致功能无法实现,所以我 ...

  9. Easyswoole的WaitGroup和Csp组件的分析和使用

    Easyswoole的WaitGroup和Csp组件的分析和使用 easyswoole可真是个好名字,只是提供了恰到好处的封装,即使是源码也保持了这样的风格.这种风格不论好坏可能都需要各位适应下,哈哈 ...

  10. 【Luogu】 P5482 [JLOI2011]不等式组 题解

    本来以为有多难,结果发现是道树状数组水题... 显然,对于每一个添加的不等式,有3种情况: \(a<0\) .此时可转换为 $x < {{a} \over {c-b}} $ . 但是,我们 ...