CephFS 文件布局性能测试对比
时间:2022-07-22
本文章向大家介绍CephFS 文件布局性能测试对比,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. 设置不同的object size进行测试
1.1 object size 4M
#上传到挂载目录
$ ll -lh /mnt/object_size_4M/
total 2.7G
-rw-r--r-- 1 root root 832M Jun 21 11:09 alchemy-api.error.log._test_1G
-rw-r--r-- 1 root root 1.9G Jun 21 10:59 alchemy-api.info.log.201806211029
#查看所有块
$ rados -p cephfs_data ls
10000006977.00000a79
10000006977.00000557
10000006977.00000171
10000006977.000003c6
10000006977.0000058e
10000006977.00000849
10000006977.00000bc0
10000006977.000001a9
10000006977.0000063b
10000006977.00000943
#查看块大小
$ rados -p cephfs_data get 10000006977.00000943 /tmp/ss.log
$ ll -lh /tmp/ss.log
-rw-r--r-- 1 root root 4.0M Jun 21 10:37 /tmp/ss.log
#搜索1.9G文件内容
$ time grep "lihangxxxx" /mnt/object_size_4M/alchemy-api.info.log.201806211029
real 0m3.088s
user 0m0.154s
sys 0m0.670s
#搜索1G文件内容
time grep "lihangxxxx" /mnt/object_size_4M/alchemy-api.error.log._test_1G
real 0m1.325s
user 0m0.066s
sys 0m0.337s
1.2 object size 16M
#设置块大小
$ mkdir /mnt/object_size_16M/
$ setfattr -n ceph.dir.layout -v "stripe_unit=16777216 stripe_count=16 object_size=16777216 pool=cephfs_data" /mnt/object_size_16M/
#19G文件上传到挂载目录
$ ll -lh /mnt/object_size_16M/
total 2.7G
-rw-r--r-- 1 root root 832M Jun 21 11:12 alchemy-api.error.log._test_1G
-rw-r--r-- 1 root root 1.9G Jun 21 11:12 alchemy-api.info.log.201806211029
#查看所有块
$ rados -p cephfs_data ls
10000006979.000002da
10000006979.000000f8
10000006979.000001bb
10000006979.000003c6
10000006979.0000024c
10000006979.000002f2
10000006979.00000448
10000006979.0000025a
10000006979.000000f5
10000006979.000002ed
#查看块大小
$ rados -p cephfs_data get 10000006979.000002ed /tmp/ss.log
$ ll -lh /tmp/ss.log
-rw-r--r-- 1 root root 16M Jun 21 10:45 /tmp/ss.log
#搜索1.9G文件内容
$ time grep "lihangxxxx" /mnt/object_size_16M/alchemy-api.info.log.201806211029
real 0m3.701s
user 0m0.148s
sys 0m0.662s
#搜索1G文件内容
time grep "lihangxxxx" /mnt/object_size_16M/alchemy-api.error.log._test_1G
real 0m1.360s
user 0m0.063s
sys 0m0.348s
1.3. object size 64M
#设置块大小
$ mkdir /mnt/object_size_64M/
$ setfattr -n ceph.dir.layout -v "stripe_unit=67108864 stripe_count=64 object_size=67108864 pool=cephfs_data" /mnt/object_size_64M/
#19G文件上传到挂载目录
$ ll -lh /mnt/object_size_64M/
total 2.7G
-rw-r--r-- 1 root root 832M Jun 21 11:12 alchemy-api.error.log._test_1G
-rw-r--r-- 1 root root 1.9G Jun 21 11:12 alchemy-api.info.log.201806211029
#查看所有块
$ rados -p cephfs_data ls
10000006979.000002da
10000006979.000000f8
10000006979.000001bb
10000006979.000003c6
10000006979.0000024c
10000006979.000002f2
10000006979.00000448
10000006979.0000025a
10000006979.000000f5
10000006979.000002ed
#查看块大小
$ rados -p cephfs_data get 10000006979.000002ed /tmp/ss.log
$ ll -lh /tmp/ss.log
-rw-r--r-- 1 root root 64M Jun 21 10:45 /tmp/ss.log
#搜索1.9G文件内容
$ time grep "lihangxxxx" /mnt/object_size_64M//alchemy-api.info.log.201806211029
real 0m4.830s
user 0m0.137s
sys 0m0.710s
#搜索1G文件内容
$ time grep "lihangxxxx" /mnt/object_size_64M/alchemy-api.error.log._test_1G
real 0m1.708s
user 0m0.062s
sys 0m0.316s
2. 测试结论
- 通过测试结论发现,设置越大的object size对检索读取文件性能有一定的影响,目前可以看出默认4M性能最优。
文件大小 |
object size |
unit |
count |
耗时 |
---|---|---|---|---|
1.9G |
4M |
3.088s |
||
1.9G |
16M |
16M |
16 |
3.701s |
1.9G |
64M |
64M |
64 |
4.830s |
1G |
4M |
1.325s |
||
1G |
16M |
16M |
16 |
1.360s |
1G |
64M |
64M |
64 |
1.708s |
11G |
4M |
16.880s |
||
11G |
16M |
16M |
16 |
1m17.401s |
11G |
64M |
64M |
64 |
2m22.575s |
文件大小 |
object size |
unit |
count |
耗时 |
---|---|---|---|---|
1G |
4M |
512K |
2,4,6,8 |
1.303s, 2.206s, 2.084s, 1.112s |
1.9G |
4M |
512K |
2,4,6,8 |
3.014s, 2.488s, 3.012s, 2.509s |
11G |
4M |
512K |
2,4,6,8 |
15.482s,15.852s,15.310s,14.424s |
1G |
16M |
512K |
2,4,6,8 |
1.282s, 1.207s,1.229s,1.238s |
1.9G |
16M |
512K |
2,4,6,8 |
2.481s, 4.047s,3.820s,4.004s |
11G |
16M |
512K |
2,4,6,8 |
13.925s, 1m46.600s,54.475s,1m23.614s |
1G |
64M |
512K |
2,4,6,8 |
1.684s,1.451s |
1.9G |
64M |
512K |
2,4,6,8 |
2m17.855s,6.389s |
11G |
64M |
512K |
2,4,6,8 |
4m6.544s,23.964s |
3. 官方测试资料
https://rc.coepp.org.au/_media/cephfs-fio-analysis.pdf
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 深入理解Java泛型(三)-泛型擦除及其相关内容
- webpack实战——预处理器(loader)【下篇】
- JAVA位运算等运算符总结
- 算法实现,用机器学习模拟一个opencv的边缘识别算法
- 开源公共组件仓库的更新日志应该如何写
- 判断ABAP代码是否处于update模式下运行的工具类
- SAP CRM WebClient UI异常的持久化机制
- 在ABAP Webdynpro里显示PDF的一种办法
- ABAP Webdynpro Interface View的用法
- ABAP Webdynpro里Component Usage的用法
- ABAP Webdynpro - 如何使用用户自定义的value help
- ABAP 740的新语法 - 使用BO association的方式进行内表连接操作
- 使用代码修改SAP CRM附件的属性
- SAP CRM附件创建的internal模式是什么含义
- 搭建maven私服上传并使用Jar包