带你读《存储漫谈:Ceph原理与实践》——3.1.6 Burst I/O

简介: 带你读《存储漫谈:Ceph原理与实践》——3.1.6 Burst I/O

3.1.6  Burst I/O


Burst I/O 指的是云盘在一定时间内达到 IOPS 突发上限的能力,突发能力适用于云服务器的启动场景,如系统盘,若有持续突发能力,就能够大幅度地提升云服务器的启动速度。

Ceph RBD 设备突发能力的实现基于令牌桶。突发时,令牌的消耗速度大于令牌的生成速度,令牌的数量逐渐减少,最后 IOPS 会维持和桶生成令牌的速度一致,即达到 IOPS的上限,理论上:

可持续的突发时间 = 最初令牌桶中的令牌数 / ( 实际 I/O 请求的速度 - 令牌生成速度 )

然而实际上这样是无法控制突发速度的上限和突发时间的,这样的突发应该理解为可突发的 I/O 请求量,举例说明一下,如卷的上限 IOPS 设置为 1000 IOPS(令牌生成的速率),卷突发设置为 2000 IOPS,若实际 I/O 请求速度刚好也是 2000 IOPS,那么突发时长实际是 2s,而且实际 I/O 请求速度并没有得到限制,若实际请求速度到了 5000 IOPS,那么实际突发时长仅为 0.5s,即 0.5s 后请求速度就被稳定限制在 1000 IOPS。

为了解决上述问题,需要对令牌桶算法进行优化,将令牌桶的容量设置为 burst_second × burst,然后向该令牌桶中添加一个小桶(容量为 burst),以令牌生成速度(也即 IOPS 的上限速度)生成的令牌放入令牌桶中,令牌桶再将令牌以突发速度流入小桶中,请求总是从小桶中获取令牌。这样,当 burst_second > 1 时,RBD 设备可以获得持续的突发能力,突发上限值由小桶容量 burst 决定,突发持续时间由 burst_second 控制,这些参数都可以通过指令在线动态地去设置。下面举例说明一下。

(1)在线设置参数

设置前如图 3-25 所示。

image.png

图 3-25 参数设置前

rbd_qos_read_iops_burst :读 I/O 的突发限制。

rbd_qos_read_iops_burst_seconds :读 I/O 突发的持续时间。

rbd_qos_read_iops_limit :每秒读 I/O 限制。

设置后如图 3-26 所示。

image.png

图 3-26 参数设置后

将读 IOPS 限制设置为 1000,并将读 IOPS 突发设置为 5000,RBD 只能获得 2s 的突发级别 IOPS,然后维持限制级别。

(2)对比测试

设置前的测试结果如图 3-27 所示。

image.png

图 3-27 设置前的测试结果

设置后测试结果如图 3-28 所示。

image.png

图 3-28 设置后的测试结果

(3)测试结果分析

设置后的单卷读 IOPS 理论值计算公式如下。

iops = {rbd_qos_read_iops_burst_seconds * rbd_qos_read_iops_burst + (total_time_of_rand_read - rbd_qos_read_iops_burst_seconds) * rbd_qos_read_iops_limit} / total_time_of_rand_read

单卷随机读理论值:iops = (2 * 5000 + 98 * 1000)/100 = 1080

测试值:iops = 1097

结论:符合预期

相关文章
|
12月前
|
存储 Linux 虚拟化
带你读《存储漫谈:Ceph原理与实践》——3.1.1 块设备映射
带你读《存储漫谈:Ceph原理与实践》——3.1.1 块设备映射
|
12月前
|
存储 缓存 算法
带你读《存储漫谈:Ceph原理与实践》——3.1.2 快照与克隆
带你读《存储漫谈:Ceph原理与实践》——3.1.2 快照与克隆
|
12月前
|
存储 容灾 安全
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
带你读《存储漫谈:Ceph原理与实践》——3.1.3 远程复制
|
12月前
|
存储 缓存 Linux
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
带你读《存储漫谈:Ceph原理与实践》——3.1.4 RBD Cache
|
12月前
|
存储 算法 网络性能优化
带你读《存储漫谈:Ceph原理与实践》——3.1.5 QoS
带你读《存储漫谈:Ceph原理与实践》——3.1.5 QoS
|
2天前
|
测试技术 块存储 开发者
阿里云块存储团队软件工程实践
本文介绍了阿里云团队软件工程实际开发流程,并简述了开发过程中遇到的一些问题。且附带案例,以及遇到案例中出现的情况应当如何应对。
|
10月前
|
存储 测试技术 块存储
阿里云块存储团队软件工程实践
文本主要介绍阿里云块存储团队同学们的踩坑经验,总结成案例和方法分享公示,实践和方法论不限于分布式系统。
151233 10
|
11月前
|
块存储
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——智能服务产品
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——智能服务产品自制脑图
212 1
|
11月前
|
块存储
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——按量弹性
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——按量弹性自制脑图
155 1
|
11月前
|
块存储
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——技术理念升级
阿里云最新产品手册——阿里云核心产品——块存储——飞天洛神3.0——云网络发展历程——云网络3.0时代——技术理念升级自制脑图
161 2

热门文章

最新文章

相关实验场景

更多