博客
关于我
分布式QoS算法解析
阅读量:604 次
发布时间:2019-03-12

本文共 810 字,大约阅读时间需要 2 分钟。

进入正题之前,我们先来了解背景知识。

QoS(Quality of Service,服务质量)是英文术语,旨在确保网络或存储系统提供给各用户的服务表现达到预期,由网络延迟、带宽和存储IOPS等多个维度来衡量。放到存储系统中,QoS的核心目标是为不同优先级的业务分配相应的存储资源,避免低优先级业务对高优先级业务造成资源抢夺,保障关键业务的稳定性和可用性。

随着企业数字化转型的加剧,对分布式存储系统的需求日益增长。在这样的环境中,资源共享普遍存在,如何实现对不同业务的QoS控制成为系统管理员面临的重要课题。

以传统的令牌桶和漏桶算法为例,这两种方法是单机QoS控制的主流方案。令牌桶通过向请求队列中动态分配令牌,实现对请求处理速率的控制;漏桶算法则强制限制业务的处理速率,但在分布式场景中,这些单机算法难以实现整体QoS管理。

基于此,VMware推出了mClock算法,为分布式存储系统中的QoS控制提供了一种新思路。该算法通过为每个业务指定权重、预留和上限三个维度的配置参数,打印多个独立的标签,结合逻辑时间排序,确保高优先级业务能优先获取存储资源。

这种标签打印机制使得系统能够根据预配置的资源权重,动态适配不同业务的QoS需求。在实际应用中,mClock算法能够有效地解决资源抢夺的问题,尤其是在多个VM共享同一存储资源的情况下。

为了应对更复杂的分布式场景,dMClock算法在mClock的基础上做了改进。这种改进主要体现在标签打印规则的调整,通过引入与传统mClock不同的delta增量算法,dmClock能够在分布式环境中更精确地控制QoS资源分配。

比较mClock和dmClock,mClock的优势在于实现简单,能够在单机场景中有效运行。相比之下,dmClock通过优化标签打印机制,使其应用范围广泛,但也增加了算法的复杂性。

总的来看,选择哪种QoS算法在实际应用中需要根据具体场景进行权衡。

转载地址:http://kncxz.baihongyu.com/

你可能感兴趣的文章
PowerShell远程连接到Windows
查看>>
power(8) identity
查看>>
POW的重力之美
查看>>
PO、VO、DAO、BO、DTO、POJO能分清吗?
查看>>
PP-PLL:基于概率传播的部分标签学习
查看>>
pytorch介绍
查看>>
pprint 排序字典但不是集合?
查看>>
pptp拨号上网
查看>>
ppt上的倒计时小工具_PPT中有哪些「看似很 LOW,实则惊艳」的小工具
查看>>
PPT添加视频的路径问题
查看>>
PPT美化插件 islide 安装过程问题“加载com加载项时运行出现错误”
查看>>
Prefix Tuning:详细解读Optimizing Continuous Prompts for Generation
查看>>
PreparedStatement 与Statement 的区别,以及为什么推荐使用 PreparedStatement ?
查看>>
PreparedStatement 查询 In 语句 setArray 等介绍。
查看>>
presentModalViewController显示半透明的一个view
查看>>
PresentViewController切换界面
查看>>
PyTorch之torch.utils.data.DataLoader解读
查看>>
PyTorch之DataLoader杂谈
查看>>
presto、druid、sparkSQL、kylin的对比分析
查看>>
Presto分布式大数据查询引擎
查看>>