ceph——数据修复/均衡速度测试

2023-05-16

以副本环境的数据均衡为例,以下需要注意:

1、写入数据时,用脚本监控写入数据量(ceph df)到达预定值,开始、停止cosbench

cosbench支持命令行。进入cosbench目录,用./cli.sh <action: submit|cancel|info>来开始、结束任务

[root@node-105-84 ~]# cd 0.4.2.c4/
[root@node-105-84 0.4.2.c4]# ./cli.sh 

Usage: ./cli.sh <action: submit|cancel|info> <parameter> <web username:password@ip:port>
  - action:
          - <submit> <configuration file>: submit configuration and start workload
          - <cancel> <workload id>: cancel workload
          - <info>: check status
  - <web username:password@ip:port> anonymous:cosbench@127.0.0.1:19088 by default

2、排除gc的影响

在上传大对象的测试中,有观测到到达预定数据量,之后数据减少的情况。可查看到gc list中有等待gc的对象。

怀疑因上传对象有5g以上大小,multipart上传导致。测试中应排除该部分gc对象的影响,等待或加快gc完成。

相关指令:

radosgw-admin gc list -n client.radosgw.node-105-80
radosgw-admin gc list --include-all -n client.radosgw.node-105-80
radosgw-admin gc process -n client.radosgw.node-105-80
ceph daemon /var/run/ceph/ceph-client.radosgw.node-105-80.1477.94595294014400.asok config show | grep _gc_

注:根据查到的gc参数来理解gc过程

3、排除scrub的影响

[root@node-105-84 0.4.2.c4]# cat /etc/ceph/ceph.conf |grep scrub
osd scrub begin hour = 0
osd scrub end hour = 5
osd_scrub_chunk_max = 2
osd_scrub_chunk_min = 1

关闭晚上的scrub或者避免在0-5点间测试

ceph osd pool set <pool_name> noscrub true

ceph osd pool set <pool_name> nodeep-scrub true

4、小对象对象个数统计

(1)radosgw-admin bucket stats --bucket=bucket1  --name client.radosgw.node-*

(2)写入大对象个数还可用s3cmd ls s3://bucket1 |wc -l得到。写入小对象个数由于到达了百万级别,ls可能超时。

由于写入小对象小于512k,可直接等于rados对象数。其实可通过ceph df查看数据池中的对象得到。比如:

    site.rgw.buckets.data.rep2      6      1116G     50.14         1024G     9577008

5、迁移量的计算方法

(1)粗略统计(注:本方法只针对于2副本;gc会影响统计结果;对于一个pg,可能多个副本发生迁移,一个pg上的数据量没有乘以迁移的副本数,导致结果不准确)

步骤:

①统计数据迁移前pg的分布

ceph pg dump pgs|awk '{print $1,$2,$7,$15}' |sort >>/root/oldpg  #这里记录的分别是,pg名,object数,pg上的数据量,以及pg的acting osd。

②统计数据迁移后pg的分布

ceph pg dump pgs|awk '{print $1,$2,$7,$15}' |sort >>/root/newpg

③对比前后pg变化

vimdiff  /root/oldpg /root/newpg #查看是否有pg上的数据量发生变化或者一个pg是否只有一个副本发生位置变化

③计算迁移量

diff -y /root/oldpg /root/newpg --suppress-common-lines|awk 'BEGIN{sum=0}{sum+=$3}END{print sum}' 来进行统计,这里的单位是字节

(2)相对精确的统计

理论①:对于一个pg,可能多个副本发生迁移,一个pg上的数据量乘以迁移的副本数可得到准确结果。

参见:http://www.zphj1987.com/2017/02/08/%E9%A2%84%E4%BC%B0ceph%E7%9A%84%E8%BF%81%E7%A7%BB%E6%95%B0%E6%8D%AE%E9%87%8F/

理论② :删除osd.1,对比前后pg分布,可能不止分布在osd.1上的pg发生了迁移。已验证。

综合①②可通过记录pg前后变化来计算迁移量。可编写脚本计算。

理论③:参见 https://blog.csdn.net/xiongwenwu/article/details/53120415 ,对于不同的删除osd的方式,数据迁移量不同。当前我们的方式为第一种,stop osd 、out osd(发生数据迁移)、crush remove osd(发生数据迁移) 、add osd(发生数据迁移)。未验证。

推论:对于不同操作场景,比如:磁盘坏了(stop osd、out osd)、磁盘坏了数据已经修复完成后删除(remove osd)、磁盘坏了数据已经修复完成后重建(remove osd+add osd)、当前osd为in+up进行删除(stop、out、crush remove)、当前osd为in+up进行重建(stop、out、crush remove、add),迁移的数据量是不同的。

6、善用Excel公式计算时间和速度

=ROUND((H5-G5) * 1440,1)

=ROUND((F2/1024/1024/I2/60),1)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ceph——数据修复/均衡速度测试 的相关文章

  • ARM-LINUX调试中segmentation fault 的解决参考

    可恶的segmentation fault问题解决探索 xff08 转载 xff09 http oss lzu edu cn blog article php tid 700 html 背景 最近一段时间在linux下用C做一些学习和开发
  • VC 多线程编程

    一 问题的提出 编写一个耗时的单线程程序 xff1a 新建一个基于对话框的应用程序SingleThread xff0c 在主对话框IDD SINGLETHREAD DIALOG添加一个按钮 xff0c ID为IDC SLEEP SIX SE
  • Linux C 函数参考(日期时间)

    1 1 概述 世界标准时间 xff08 Coordinated Universal Time xff0c UTC xff09 xff0c 也就是大家所熟知的格林威治标准时间 xff08 Greenwich Mean Time xff0c G
  • IplImage与char型转换

    对OpenCV稍有了解的同学都知道里边用于存储图像数据的IplImage xff0c 其中有两个属性非常值得关注 xff0c 稍不留神就会导致错误 xff08 后附错例一则 xff09 xff1a 一是width属性 xff1b 二是wid
  • 如何卸载阿里巴巴PC流氓软件

    今天真的是恶心到我了 我有一个移动硬盘插在PC上 xff0c 用了一段时间后本打算简单的退出这个硬盘 xff0c 想安全地拔下 没想到360软件提示有一个进程在占用这个移动硬盘 xff0c 不能安全地弹出 靠 xff0c 我想着什么软件这么
  • wsl1 的Ubuntu20.04升级到wsl2 的Ubuntu20.04失败,报错系统找不到指定的文件

    在wsl下看到Ubuntu 20 0是正常运行的 xff0c 但是升级为wsl2时无法找到对应的文件 PS xff1a 之前将Ubuntu迁移到D盘后删掉了 xff0c 重新下了一个Unbuntu xff0c 可能是导致无法升级wsl2的原
  • 使用U盘重装Windows10系统详细步骤及配图【官方纯净版】

    文章目录 1 制作启动盘1 1准备U盘及一台电脑1 2下载win10安装包 2 安装操作系统2 1插入系统安装盘2 2设置启动盘为第一启动项2 3开始安装操作系统 3 安装成功后进入图形界面3 1启动问题3 2驱动问题3 3调出 34 控制
  • Android实现图片转ascii码字符图的一些尝试

    z2IN png 抖音上炫代码的不少 xff0c 有些真的让人叹为观止 xff0c 作为一个androider xff0c 当我看到下面这段舞蹈的时候 xff0c 终于忍不住了 xff0c 想要通过android实现一样的效果 jileji
  • 浅谈知识追踪(BKT、IRT、DKT)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 知识追踪是什么 xff1f 二 具体内容1 基于贝叶斯的知识追踪 xff08 BKT xff09 项目反应理论 xff0
  • 走进C++11(十四)变长参数模板

    解释 C 43 43 03只有固定模板参数 C 43 43 11 加入新的表示法 xff0c 允许任意个数 任意类别的模板参数 xff0c 不必在定义时将参数的个数固定 变长模板 变长参数是依靠C 43 43 11新引入的参数包的机制实现的
  • sql server 获取当前日期前12个月的月份sql 语句

    sql server 获取当前日期前12个月的月份sql 语句 select convert varchar 7 dateadd mm number dateadd month 11 getdate 120 as dt from maste
  • wxPython禁用窗口最大化按钮

    本文提供了两种方法禁用窗体最大化按钮 方法一 通过SetWindowStyle函数单独设置窗体式样 代码 xff1a self SetWindowStyle wx DEFAULT FRAME STYLE wx MAXIMIZE BOX 方法
  • C++ std::thread使用

    c 43 43 11 之后有了标准的线程库 xff1a std thread 通过c 43 43 11中的线程库创建线程 xff0c 极为方便 xff0c 且跨平台 xff0c 是语言层面的 之前跨平台的多线程开发中 xff0c 多使用bo
  • iOS 不规则的UIImageView 实现

    那如何去实现 xff1f 通常图片都是矩形的 xff0c 如果想在客户端去实现不规则的头像 xff0c 需要自己去实现 1 使用layer去实现 见http blog csdn net johnzhjfly article details
  • Python-生成式和生成器(通俗易懂)

    在 1 生成式 1 xff09 列表生成式 生成100个随机验证码 xff1a 通过列表生成式简化 xff1a span class token keyword import span random span class token key
  • 2014-09-2 ccf画图 c++

    span class token comment 2014 09 2 span span class token comment 画图 span span class token macro property span class toke
  • C语言爱心代码大全集—会Ctrl+C就可以表白了

    一 C语言爱心代码大全 xff0c 会Ctrl 43 C就可以表白了 xff01 博主整理了一个C语言爱心代码大全 xff0c 里面有C语言爱心代码会动的动态效果和C语言爱心代码大全静态效果 xff0c 只需复制粘贴就可以用啦 xff01
  • 【解决方法】vscode页面出现代码没有颜色,无提示字的情况

    问题描述 xff1a 解决方法 xff1a 安装vetur插件 即可解决问题 xff0c 亲测有效
  • 续订Office365E5订阅

    前言 Microsoft 365 E5 Renew X Microsoft 365 E5 Renew X是一款网页版的E5续订服务 xff0c 其依赖网页浏览器呈现支持用户多端操作 xff0c 完全将E5账户API调用托管在了服务器端因此用
  • Python安装pyinstaller模块的错误:ModuleNotFoundError: No module named 'setuptools.build_meta'

    一大串红字 xff0c 但看最后这行可以猜到与setuptools模块有关 xff0c 果然 xff0c 查阅CSDN后 xff0c 知道是setuptools的版本太低 解决方法 xff1a 升级一下setuptools包 xff1a p

随机推荐