APP下载

分布式文件系统I/O拥塞控制研究

2019-01-19蔡宇昂

绿色科技 2018年24期
关键词:服务器端粒度客户端

蔡宇昂

(湖北警官学院,湖北 武汉 430000)

1 引言

在分布式文件系统中,为了实现高性能和高并行,一个I/O操作通常被分割为若干个请求序列[1,2],这些请求被并行地发送到服务器端,导致存储系统中涌现大量资源竞争,如存储带宽、磁盘访问时间片等。在分布式文件系统中,设计一种I/O拥塞控制机制来协调和控制集群的I/O请求,保证系统高效运行就显得尤为重要。

LiYan等人在Remy基础上,提出ASCAR[3]、CAPES[4],通过参数来控制分布式文件系统客户端请求发送窗口,并基于机器学习进行参数调优,从客户端进行自动I/O拥塞控制。但有两个不足:第一,调控只在客户端进行,未考虑到服务器端的情况;第二,调控的粒度是整个客户端,无法有效协调应用之间的资源竞争,调控效果有限,在某些特殊情况下无法充分利用系统的资源缓解拥塞状况。 Yingjin Qian设计一种针对大规模集群的分布式动态 I/O拥塞控制机制[5,6]。该动态I/O拥塞控制方案可以在服务器轻载时,让客户端的应用更多更快的并行发送 I/O 请求,以提高系统的资源利用率和性能;当服务器处于过载状态,客户端通过 I/O 节流机制,减少I/O请求发送的数量,降低发送速率,以避免服务器出现拥塞或者崩溃。但是该方案仅考虑到单个服务器节点上的负载情况,就对相应连接的客户端的请求进行限制,在缓解当前服务器端节点拥塞的情况下,可能同时影响了其它节点;该方案的调节粒度是整个客户端,在某些情况下无法充分地利用服务器资源,解决拥塞问题。 本文的主要工作如下:①提出从服务器端和客户端同时着手,实现端到端的拥塞控制;②在客户端基于应用粒度分配I/O发送窗口,保证应用间公平性,控制请求的发送数量和速度,既充分利用了服务资源,又尽可能地避免了服务器端的拥塞。

2 AIOCC的设计与实现

2.1 服务器端拥塞控制机制

AIOCC针对分布式文件系统服务器端拥塞控制方案主要分为三部分:第一,客户端发送窗口值分配算法,即如何根据服务器端负载的和资源情况,动态地以客户端粒度计算发送窗口值,保证客户端间的公平性;第二,根据第一步计算的总体发送窗口值和应用效率评估模型,评估各应用的效率;第三,基于相应的策略模型,通过NRS TBF策略执行分配方案,保证应用粒度的公平性,并将分配值捎带在I/O RPC回复请求中反馈到客户端,用以指导客户端发送窗口值的分配(表1)。

表1 分布式文件系统拥塞状况下应用调度模型变量定义

定义APPk的效率评估模型:

(1)

一个I/O RPC请求从到达服务器端到完成I/O操作,除了I/O时间和排队等待的时间,还包含I/O RPC请求建立连接、上下文切换开销和资源竞争处理时间,且设备的实际传输速率总是低于极限速率的,因此:

(2)

=(W(k,i)/Br+W(k,i)/Bd)/(Rk/Rt+W(k,i)/Br+W(k,i)/Bd)

(3)

分别建立以下两个模型来评估系统的效率和隔离性。

2.2 客户端拥塞窗口控制的设计

在分布式文件系统客户端,设置了max_rpcs_in_flight参数,来控制从客户端向服务器端发送请求的最大数目,客户端的I/O操作都是以固定大小为单位进行的,默认为1MB,该值可以通过procfs(进程文件系统)调整。因而I/O的数据量和RPC请求的数据量正相关,这为在设计实现AIOCC方案提供了便利,不需要再考虑数据传输的数据量计算问题。借鉴ASCAR方案,并进一步细化参数设置,进行客户端发送窗口的控制。表2是相关参数定义。

表2 客户端拥塞控制参数定义

在统计ewma时,除了在客户端粒度计算ewma判定整体的拥塞状况外,还在应用粒度分类计算每个应用的ewmai,并设定判定拥塞状态的阀值ewmamax,当ewmai

(4)

该策略基于ewmamax-ewmai比例分配客户端的发送窗口,显然ewmamax-ewmai越大,说明该应用对应的连接状况越好,应用将被分配更多的发送窗口,获得更多发送请求的机会,以提高系统的资源利用率。ewmamax-ewmai越小,说明该应用对应的连接状况越差,应用将被分配相对较少发送窗口,在差值小于等于0后甚至不分配发送窗口,以缓解拥塞状况,当该应用对应的连接拥塞状况好转后,将重新获得发送请求的机会。

3 测试

使用基准测试程序FIO作为负载产生工具,并使用Telegraf、InfluxDB和Grafana对分布式文件系统构建可视化的监控系统:Telegraf是一个单节点的性能指标采集工具,负责采集各节点的性能指标数据,InfluxDB是一个分布式时序数据库,Telegraf采集的数据通过HTTP请求上报到InfluxDB中进行存储,Grafana从InfluxDB拉取数据进行统计分析和可视化展示。

从三个方面分析AIOCC自动I/O拥塞控制效果:1)在拥塞情况下,AIOCC针对不同负载对分布式文件系统调节,系统整体吞吐的提升情况,对比不使用AIOCC调节(NO-AIOCC)、分别经过24小时(24-AIOCC)和48小时(24h-AIOCC)训练后参数的调控效果进行论证;2)分析AIOCC在48小时内,对每种负载调节时,吞吐的变化的详细情况;3)改变FIO参数,减少客户端I/O进程的数量,分析在分布式文件系统集群处于轻载状态下,AIOCC对系统是否有负面影响,对NO-AIOCC、24h-AIOCC和48h-AIOCC调控效果对比。通过测试,可以得到两点结论:①在设定的集群规模和上述FIO参数合成的负载下,经过24小时的训练,AIOCC基本可以获得比较理想的调控参数值;②AIOCC对于读操作为主的负载调控效果不明显,而对于写操作为主的负载调控效果较比较好,在读写比例为1∶9时可以提升吞吐40.87%。

4 结语

AIOCC对分布式文件系统集群中的部分负载导致的I/O拥塞问题行之有效,对于写I/O操作为主的负载提高系统吞吐最高达到 40.87%,降低吞吐的性能偏差26%,有效降低I/O任务完成时延达30%,同时不会持续对轻载状态的分布式文件系统集群产生负面影响,性能开销也在可控范围内。

猜你喜欢

服务器端粒度客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
超重力场中煤泥颗粒沉降规律研究①
动态更新属性值变化时的最优粒度
情感粒度
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
媒体客户端的发展策略与推广模式
油田碎屑岩粒度分布情况测定中激光粒度分析仪应用的价值
一种基于Java的IM即时通讯软件的设计与实现