ceph集群中RBD的性能测试、性能调优

news2024/11/14 13:55:06

文章目录

  • rados bench
  • rbd bench-write
  • 测试工具Fio
    • 测试ceph rbd块设备的iops性能
    • 测试ceph rbd块设备的带宽
    • 测试ceph rbd块设备的延迟
  • 性能调优


rados bench

参考:https://blog.csdn.net/Micha_Lu/article/details/126490260
rados bench为ceph自带的基准测试工具,rados bench用于测试rados存储池底层性能,该工具可以测试写、顺序读、随机读三种类型.

写入速率测试:

rados bench -p rbd-bak 10 write --no-cleanup

在这里插入图片描述
顺序读速率测试:

rados bench -p rbd-bak 10 seq

在这里插入图片描述
随机读速率测试:

rados bench -p rbd-bak 10 rand

在这里插入图片描述

rbd bench-write

rbd bench-write为ceph自带的基准性能测试工具,rbd bench-write用于测试块设备的简单写入测试。

rbd bench-write rbd-bak/image1 --io-size 1M --io-pattern seq  --io-threads 32 --io-total 10G

在这里插入图片描述

测试结果取最后一行elapsed的值,带宽为bytes/sec对应参数值(单位为bytes/sec,可根据需要转换为MB/s),IOPS为ops/sec对应参数值

测试工具Fio

yum install fio -y

在这里插入图片描述

测试ceph rbd块设备的iops性能

关于fio命令的参数,参考:https://blog.csdn.net/zhiboqingyun/article/details/123368887

每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一;

测试随机写4kb文件的iops性能

fio --name=4krandwrite_iops --filename=/dev/rbd0 --numjobs=8 --bs=4k --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=randwrite --group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=10

在这里插入图片描述

顺序写4kb文件的iops性能

fio --name=4kwrite_iops --filename=/dev/rbd0 --numjobs=8 --bs=4k --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=write --group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=10

在这里插入图片描述
顺序读4kb文件的iops性能

fio --name=4kread_iops --filename=/dev/rbd0 --numjobs=8 --bs=4k --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=read --group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=10

在这里插入图片描述

随机读4kb文件的iops性能

fio --name=4krandread_iops --filename=/dev/rbd0 --numjobs=8 --bs=4k --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=randread --group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=10

在这里插入图片描述

测试ceph rbd块设备的带宽

测试ceph rbd设备写4MB文件的极限带宽性能

fio --name=4mwrite_bw --filename=/dev/rbd0 --numjobs=8 --bs=4m --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=write --group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=10

在这里插入图片描述
bw=这组进程的总带宽,每个线程的带宽

测试ceph rbd块设备的延迟

测试ceph rbd设备顺序写4kb文件的延迟性能

fio --name=4kwrite_lat --filename=/dev/rbd0 --numjobs=8 --bs=4k --ioengine=sync --direct=1 --randrepeat=0 --norandommap --rw=write --group_reporting --runtime=10

在这里插入图片描述
一些参数解释:
slat 表示fio 提交某个I/O的延迟(min为最小值,max为最大值,avg为平均值,stdev为标准偏差)。 对于同步I / O,不会显示该行。
clat 表示从提交到完成I / O的时间。
lat 表示从fio将请求提交给内核,再到内核完成这个I/O为止所需要的时间;

usec:微秒;msec:毫秒;1ms=1000us;

测试ceph rbd设备顺序读4kb文件的延迟性能

fio --name=4kread_lat --filename=/dev/rbd0 --numjobs=8 --bs=4k --ioengine=sync --direct=1 --randrepeat=0 --norandommap --rw=read --group_reporting --runtime=10

在这里插入图片描述

测试ceph rbd设备随机读4kb文件的延迟性能

fio --name=4krandread_lat --filename=/dev/rbd0 --numjobs=8 --bs=4k --ioengine=sync --direct=1 --randrepeat=0 --norandommap --rw=randread --group_reporting --runtime=10

在这里插入图片描述

测试ceph rbd设备随机写4kb文件的延迟性能

fio --name=4krandwrite_lat --filename=/dev/rbd0 --numjobs=8 --bs=4k --ioengine=sync --direct=1 --randrepeat=0 --norandommap --rw=randwrite --group_reporting --runtime=10

在这里插入图片描述

性能调优

CPU调优:
ceph是使用软件定义的存储,因此其性能很大程度上依赖于OSD节点的CPU速度。CPU主频越高,则运行代码的速度就越快,同时处理io请求的时间就越短。
磁盘调优:
在磁盘参数和硬件配置相同的情况下,大量的io请求会向ceph osd写入数据,同时会向其他osd节点写入数据副本。如果OSD节点数量过少,那么会导致性能不高,因此增加osd数量,在某种程度上能提升写操作性能。
系统配置参数调优:
设置磁盘的预读缓存:【该参数通过预读取数据并将其加载到随机存取存储器中加快磁盘读操作,设置为较高的值有助于客户端顺序读取操作】

echo "8192" > /sys/block/vdc/queue/read_ahead_kb

设置系统的进程数量

echo 4194303 > /proc/sys/kernel/pid_max

ceph集群的配置参数:

为集群定义内部网络:

[global]
cluster network = {cluster network/netmask}

设置最大文件打开数:

[global]
max open files = 131072

ceph启用rbd缓存,默认的缓存机制是write-back

[client]
rbd cache = true
rbd cache size = 268435456 #rbd缓存大小
rbd cache max dirty = 134217728 #rbd缓存脏数据最大字节数,超过这个值之后,数据会写回备用存储。如果这个值设置为0,那么ceph使用的缓存模式是write-through

为了创建一个一致的提交操作,文件系统需要先静默写操作,并执行一次sync操作。然后将日志中的数据写到数据分区,再释放日志。如果同步操作太频繁,会导致日志中存放的数据很少,日志没有得到重复的利用。配置不那么频繁的同步操作,将有助于文件系统更好的合并写操作。有助于提升性能。
下面的参数定义了两次同步之间最小和最大的时间间隔。

[OSD]
filestore min sync interval = 10
filestore max sync interval = 15

文件存储队列的最大操作数:

[OSD]
filestore queue max ops = 25000 
filestore queue max bytes = 10485760 #每个操作的最大字节数

文件系统最大操作线程数:

[OSD]
filestore op threads = 32

其他的一些参数有:
关于journal的参数:
比如可以设置一次性写入的最大字节数 journal max write bytes 、
一次性在队列中的操作数 journal queue max ops等

关于osd config tuning:
osd一次可写入的最大值,osd max write size
osd进程的最大线程数,osd op threads

关于osd client tuning:
rbd 缓存大小,rbd cache size

具体参数描述可以参考文章。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/802599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OnnxRuntime TensorRT OpenCV::DNN性能对比(YoloV8)实测

1. 前言 之前把ORT的一套推理环境框架搭好了,在项目中也运行得非常愉快,实现了cpu/gpu,fp32/fp16的推理运算,同onnx通用模型在不同推理框架下的性能差异对比贴一下,记录一下自己对各种推理框架的学习状况 YoloV8模型大小 模型名称参数量NANO3.2M...... 2. CPU篇 CPU推理框架性…

【三维重建】SceneRF:基于NeRF的自监督单目三维场景重建

文章目录 摘要一、前言二、方法2.1.用于新的深度合成的NeRF3.1.1 深度估计 3.2 概率射线采样 (PrSamp)3.3 球形Unet(SU-net)3.4.场景重建方案 四、实验总结 摘要 从二维图像的三维重建被广泛的研究,训练与深度监督。为了放松对昂贵获取的数据…

火爆全网,Charles抓包教程-辅助接口测试(一)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 charles是一款非常…

【C++进阶】多态的理解

一.多态是什么 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。 对于多态,不同的对象传过去,会调用不同的函数; 即多态调用看的是指向的对象。 //A,B类中的func函数是个多态 class A { pu…

自制Nuget包(C#)

自制Nuget包 自制C# Nuget包。 目的: 生成一个可以通过Nuget管理自动应用的包,生成效果如图: 步骤: 整个制作过程分为两步:第一步制作Nuget包,第二步上传Nuget包到Nuget网站(地址&#xf…

Redis实战(2)——互斥命令用于构建分布式锁

1 什么是分布式锁 在单体应用中,线程锁是可以让多个线程串行执行一段代码逻辑的。不过在集群环境或者是分布式的环境下,线程锁无法保证线程串行运行,从而出现线程安全的问题。 根本的原因在于,在 集群分布式环境下 \textcolor{r…

F12 浏览器调试模式页面刷新 network 日志刷新消失的解决办法

每次请求刷新后都把之前的请求记录刷新掉了,把preserve log勾选上后,所有的请求都会保留,再也不怕抓不到记录了。

配置 gitlab https 访问

文章目录 1. 备份2. 生成SSL证书3. 配置文件4. 重启5. 访问 1. 备份 docker exec -ti gitlab-ce gitlab-rake gitlab:backup:create2. 生成SSL证书 yum install openssl openssl-devel -y mkdir /data/gitlab/config/ssl ; cd /data/gitlab/config/ssl### 生成证书 openssl…

郑州Sectigo DV通配符SSL证书

我们在浏览器访问网页时或许不会注意到网站是http还是https链接,但是一定能注意到浏览器给我们展示的“不安全”警告,警告访问者网站未加密,访问网站会有泄露隐私的危险。SSL证书能将网站链接由http转为https,对网站传输数据加密&…

数据科学复现

片段 线性回归建模步骤.py 用sklearn做简单的一元线性回归.py 红用逻辑回归实现红酒数据分类py 高斯朴素贝叶斯分类py

uni-app如何生成正式的APK

第一步: 进入dcloud官网https://dcloud.io/,点击开发者后台进入登录注册页面 第二步:登录之后跳到项目列表,选择自己想要打包的项目 点击进去如果没有生成证书,点击生成证书,如果显示证书已生成就不用管了…

什么样的程序员在35岁后仍然保持竞争力?

作为程序员,大家肯定都听说过程序员的35岁危机,有的人刚入职程序员这个岗位就开始为自己的未来担忧,然而,与其担心自己35岁以后被优化掉,不如现在想想,怎么让自己到了35岁以后在这个岗位上依旧有竞争力。今…

【Python】在PyCharm中安装 ChatGPT 插件,让 AI 帮助我们写代码,从此代码再无报错,小白也能轻易上手!!!

前言 ChatGPT是目前最强大的AI,不仅能够聊天、写小说,甚至码代码也不在话下。 但是在国内要使用chatgpt很麻烦,国内一家团队开发了一款idea插件NexChatGPT,用数据代理的方式,让我们在国内也能轻松的使用chatgpt。 没…

【图像去噪】基于进化算法——自组织迁移算法(SOMA)的图像去噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

亚马逊云科技联合霞光社发布《2013~2023中国企业全球化发展报告》

中国企业正处于全球聚光灯下。当企业全球化成为时代发展下的必然趋势,出海也从“可选项”变为“必选项”。中国急速扩大的经济规模,不断升级的研发和制造能力,都在推动中国企业不断拓宽在全球各行业的疆域。 过去十年,是中国企业…

Unity XML1——XML基本语法

一、XML 概述 ​ 全称:可拓展标记语言(EXtensible Markup Language) ​ XML 是国际通用的,它是被设计来用于传输和存储数据的一种文本特殊格式,文件后缀一般为 .xml ​ 我们在游戏中可以把游戏数据按照 XML 的格式标…

SOLIDWORKS 运行缓慢?了解如何诊断SOLIDWORKS大型装配性能问题?

在打开装配时,您的SOLIDWORKS运行缓慢吗?或者不仅打开时间慢,每次点击、旋转或缩放都会产生延迟。 好消息是,我们是可以改善装配加载性能的,困难的部分是需要知道从哪里入手。本文中,我们将研究如何诊断SO…

这几个习惯,让我成为了高阶项目经理

大家好,我是老原。 每个大佬都有每个大佬不同的习惯。但是优秀的大佬之间是有共性的。 当我们把他们的共性当做一种“习惯”来训练自己,有没有可能也把自己培养成大佬 就像你一开始不知道怎么预设风险、沟通和团队协调不够好; 有的人就可…

提升团队协作效率的秘诀!项目管理系统来帮忙!

在疫情的影响下,许多企业受到了经济的影响。企业产值和人员的减少需要提高现有员工的工作效率。项目中的团队合作是提高企业产值的重要组成部分。如何提高项目管理中员工的团队合作效率已成为困扰许多管理者的难题。 许多管理者在领导团队进行项目管理时无法有效地管…