RPC响应策略,HDFS优化

NameNode RPC FairCallQueue 请求响应策略:
    Namenode负责协调HDFS内部的操作,接收Client请求。
RPC任务调度策略
    FIFO队列(默认):使用先进先出队列来执行RPC请求,先到先服务,
        缺点:针对频次很高的请求占用更多的服务,导致其他用户服务延迟。
    FairCallQueue:公平队列
        DecayRpcScheduler:维护用户请求数,扫描周期为5s(默认),每次扫描将用户请求数排序,分配优先级(0,1,2,3)0为高优先级,默认优先级阈值(0.125,0.25,0.5),呼叫占50%以上用户在3,25%-50%在2,12.5%-25%在1,其他在0。
        WeightedRoundRobinMultiplexer:当响应请求时,根据队列权重处理请求,默认(8,4,2,1),0优先级处理8个,1优先级队列处理4个以此类推,轮询处理。
        退避机制(可配):
            当请求放入响应优先级队列时,队列满了,触发退避,服务器抛出异常,一段时间后才能重试。
            响应时间退避:高优先级队列处理时间太慢,1队列相应阈值10S,平均处理时间12S,则2优先级队列收到退避异常,高优先级正常处理。
        服务用户,进行设置,始终进入高优先级响应队列。


      

 实例: 参数均以ipc.<port>开头
        <property>
            <name>ipc.8020.callqueue.impl</name>    -- 使用org.apache.hadoop.ipc.FairCallQueue公平调用队列。
            <value>org.apache.hadoop.ipc.FairCallQueue</value>
        </property>
        <property>
            <name>ipc.8020.callqueue.capacity.weights</name>  --子队列之间的容量分配权重
            <value>7,3</value>
        </property>
        <property>
            <name>ipc.8020.scheduler.impl</name>     -- 使用org.apache.hadoop.ipc.DecayRpcScheduler
            <value>org.apache.hadoop.ipc.DecayRpcScheduler</value>
        </property>
        <property>
            <name>ipc.8020.scheduler.priority.levels</name>  -- 两个优先级队列
            <value>2</value>
        </property>
        <property>
            <name>ipc.8020.faircallqueue.multiplexer.weights</name> -- 高优先级99个请求,低优先级1个请求,以此类推
            <value>99,1</value>
        </property>
        <property>
            <name>ipc.8020.decay-scheduler.thresholds</name> --阈值大于90%进入低优先级队列
            <value>90</value>
        </property>

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值