compression功能测试
时间:2022-04-25
本文章向大家介绍compression功能测试,主要内容包括compression功能测试、1.启动compression、3.压缩效果对比、4.总结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
compression功能测试
1.启动compression
功能描述: 1.目前从k版本开始支持compression,目前支持zlib、snappy、zstd,注意从ceph version 12.0.0开始才加入了zstd插件。 2.注意配置的时候如果设置的插件不存在或者名称错误,则不启用压缩特性。 3.目前压缩特性只对data_pool这个pool的数据有效。 4. 可以实时变更插件类型而不影响之前写入的数据访问。(写入object的时候每个object都有一个内置变量标记当前object使用的压缩插件类型。) 5.compression特性对用户透明,用户是无法感知压缩功能是否存在的。
root@demo:/home/user# radosgw-admin zone placement modify --rgw-zone=default --placement-id=default-placement --compression=zstd
{
"id": "eab5746a-26fa-42b4-a5f3-5d887ba846f9",
"name": "default",
"domain_root": "default.rgw.data.root",
"control_pool": "default.rgw.control",
"gc_pool": "default.rgw.gc",
"lc_pool": "default.rgw.lc",
"log_pool": "default.rgw.log",
"intent_log_pool": "default.rgw.intent-log",
"usage_log_pool": "default.rgw.usage",
"user_keys_pool": "default.rgw.users.keys",
"user_email_pool": "default.rgw.users.email",
"user_swift_pool": "default.rgw.users.swift",
"user_uid_pool": "default.rgw.users.uid",
"system_key": {
"access_key": "",
"secret_key": ""
},
"placement_pools": [
{
"key": "default-placement",
"val": {
"index_pool": "default.rgw.buckets.index",
"data_pool": "default.rgw.buckets.data",
"data_extra_pool": "default.rgw.buckets.non-ec",
"index_type": 0,
"compression": "zstd" #插件类型
}
},
{
"key": "new",
"val": {
"index_pool": "new.buckets.index",
"data_pool": "new.buckets.data",
"data_extra_pool": "new.buckets.extra",
"index_type": 0,
"compression": "zlib" #插件类型
}
}
],
"metadata_heap": "",
"tier_config": [],
"realm_id": ""
}
2.查看compression配置
root@demo:/home/user# radosgw-admin zone placement list --rgw-zone=default
[
{
"key": "default-placement",
"val": {
"index_pool": "default.rgw.buckets.index",
"data_pool": "default.rgw.buckets.data",
"data_extra_pool": "default.rgw.buckets.non-ec",
"index_type": 0,
"compression": "zstd" #插件类型
}
},
{
"key": "new",
"val": {
"index_pool": "new.buckets.index",
"data_pool": "new.buckets.data",
"data_extra_pool": "new.buckets.extra",
"index_type": 0,
"compression": "zlib" #插件类型
}
}
]
3.压缩效果对比
测试使用一个iso镜像文件,对比压缩前后的体检差异
root@demo:/home/user# radosgw-admin bucket stats --bucket=snappy-test
{
"bucket": "snappy-test",
"pool": "default.rgw.buckets.data",
"index_pool": "default.rgw.buckets.index",
"id": "0fef9464-bfe0-428b-86b5-b8d51876ff81.4274.1",
"marker": "0fef9464-bfe0-428b-86b5-b8d51876ff81.4274.1",
"owner": "u-gfn2636",
"ver": "0#41",
"master_ver": "0#0",
"mtime": "2017-03-21 09:44:13.698936",
"max_marker": "0#",
"usage": {
"rgw.main": {
"size": 258998272,
"size_actual": 248091783 ,#实际文件大小
"size_utilized": 248091783, #压缩后的大小
"size_kb": 252928,
"size_kb_actual": 252928,
"size_kb_utilized": 242278,
"num_objects": 1
},
"rgw.multimeta": {
"size": 0,
"size_actual": 0,
"size_utilized": 0,
"size_kb": 0,
"size_kb_actual": 0,
"size_kb_utilized": 0,
"num_objects": 0
}
},
"bucket_quota": {
"enabled": false,
"check_on_raw": false,
"max_size": -1,
"max_size_kb": 0,
"max_objects": -1
}
}
插件名称 |
未压缩 |
snappy |
zstd |
zlib |
---|---|---|---|---|
容量大小 |
258998272 |
248091783 |
245851907 |
246105300 |
4.总结
不考虑性能和时间的情况下,zstd效果最佳,由于每个插件还有一些压缩测试可以微调,所以测试的结果仅供参考。
附 zstd介绍 https://github.com/facebook/zstd snappy介绍 https://github.com/google/snappy
- springboot高并发redis细粒度加锁(key粒度加锁)
- java使用spark/spark-sql处理schema数据
- redis的发布订阅模式pubsub
- linux命令和awk
- django集成celery之callback方式link_error和on_failure
- 使用beanstalkd实现定制化持续集成过程中pipeline
- 用SQLite查看编辑android导出的微信聊天记录
- 使用HDFS客户端java api读取hadoop集群上的信息
- 使用Fabric一键批量部署上线/线上环境监控
- springboot使用zookeeper(curator)实现注册发现与负载均衡
- django使用xlwt导出excel文件
- redis的sentinel主从切换(failover)与Jedis线程池自动重连
- Hadoop通过HCatalog编写Mapreduce任务访问hive库中schema数据
- 伪排练:NLP灾难性遗忘的解决方案
- 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 数组属性和方法
- 使用OpenCV和Python标记超像素色彩
- 听说,你的Loki还是单体?(上篇)
- 加一
- APP自动化测试系列之Appium介绍及运行原理
- 没想到吧,Markdown 还能这么玩!
- 致敬Vue3: 1.1万字从零解读Vue3.0源码响应式系统
- APP自动化测试系列之Desired Capabilities详解
- Kafka分区分配策略(Partition Assignment Strategy)
- 内网渗透-代理篇(一)
- java学习应用篇|逃不掉的HelloWorld
- java学习原理篇|java程序运行套路
- 架构师成长之路系列(二)
- 前端性能优化 24 条建议(2020)
- 【Flutter 实战】大量复杂数据持久化
- GBDT+LR:Practical Lessons from Predicting Clicks on Ads