前言

测试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. ABAP 7.55 新特性 (一)

    最近几天,SAP S4 2020对应的ABAP 7.55的新版文档已经出现.本文翻译了ABAP SQL之外的更新部分.ABAP SQL的更新比较长,会再之后单独成篇. 译者水平有限,如有错误,请评论指 ...

  2. 【树形DP】CF 1293E Xenon's Attack on the Gangs

    题目大意 vjudge链接 给n个结点,n-1条无向边.即一棵树. 我们需要给这n-1条边赋上0~ n-2不重复的值. mex(u,v)表示从结点u到结点v经过的边权值中没有出现的最小非负整数. 计算 ...

  3. log4j日志级别怎么搞

    日志的级别之间的大小关系如右所示:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF Log4j建 ...

  4. java的回收机制

    在java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个: 1.给对象赋值为null,以下没有调用过. 2.给对象赋了新的值,重新分配了内存空间.

  5. 执行java -jar filename.jar提示没有主清单属性

    <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> ...

  6. 图解git,用手绘图带你理解git中分支的原理和应用

    大家好,今天我们来聊git当中一个非常非常重要的特性,就是branch. git branch可以说是git当中最重要的概念了,甚至没有之一.因为git最重要的使用场景就是协同开发,大家一起在一个项目 ...

  7. 输出c字母图形

    1 #include "stdio.h" 2 #include "math.h" 3 int main(void) 4 { 5 double y; 6 int ...

  8. vue 组件传值,(太久不用就会忘记,留在博客里,方便自己查看)

    一 :父组件 传值给 子组件 方法: props //父组件 <template lang="html"> <div> <h3>我是父亲< ...

  9. mysql-connector-java各种版本下载地址

    mysql-connector-java下载地址: http://mvnrepository.com/artifact/mysql/mysql-connector-java 目录 1.进去后选择自己的 ...

  10. Zabbix批量添加Hosts

    添加脚本 addhost.py #coding:utf-8 import json import urllib2 from urllib2 import URLError import sys imp ...