Fair策略

image.png

FairSharePolicy.FairShareComparator

@Override
    public int compare(Schedulable s1, Schedulable s2) {
      double minShareRatio1, minShareRatio2;
      double useToWeightRatio1, useToWeightRatio2;
      double weight1, weight2;
      Resource minShare1 = Resources.min(RESOURCE_CALCULATOR, null,
          s1.getMinShare(), s1.getDemand());
      Resource minShare2 = Resources.min(RESOURCE_CALCULATOR, null,
          s2.getMinShare(), s2.getDemand());
      boolean s1Needy = Resources.lessThan(RESOURCE_CALCULATOR, null,
          s1.getResourceUsage(), minShare1);
      boolean s2Needy = Resources.lessThan(RESOURCE_CALCULATOR, null,
          s2.getResourceUsage(), minShare2);

      minShareRatio1 = (double) s1.getResourceUsage().getMemory()
          / Resources.max(RESOURCE_CALCULATOR, null, minShare1, ONE).getMemory();
      minShareRatio2 = (double) s2.getResourceUsage().getMemory()
          / Resources.max(RESOURCE_CALCULATOR, null, minShare2, ONE).getMemory();

      weight1 = s1.getWeights().getWeight(ResourceType.MEMORY);
      weight2 = s2.getWeights().getWeight(ResourceType.MEMORY);
      if (weight1 > 0.0 && weight2 > 0.0) {
        useToWeightRatio1 = s1.getResourceUsage().getMemory() / weight1;
        useToWeightRatio2 = s2.getResourceUsage().getMemory() / weight2;
      } else { // Either weight1 or weight2 equals to 0
        if (weight1 == weight2) {
          // If they have same weight, just compare usage
          useToWeightRatio1 = s1.getResourceUsage().getMemory();
          useToWeightRatio2 = s2.getResourceUsage().getMemory();
        } else {
          // By setting useToWeightRatios to negative weights, we give the
          // zero-weight one less priority, so the non-zero weight one will
          // be given slots.
          useToWeightRatio1 = -weight1;
          useToWeightRatio2 = -weight2;
        }
      }

      int res = 0;
      if (s1Needy && !s2Needy)
        res = -1;
      else if (s2Needy && !s1Needy)
        res = 1;
      else if (s1Needy && s2Needy)
        res = (int) Math.signum(minShareRatio1 - minShareRatio2);
      else
        // Neither schedulable is needy
        res = (int) Math.signum(useToWeightRatio1 - useToWeightRatio2);
      if (res == 0) {
        // Apps are tied in fairness ratio. Break the tie by submit time and job
        // name to get a deterministic ordering, which is useful for unit tests.
        res = (int) Math.signum(s1.getStartTime() - s2.getStartTime());
        if (res == 0) {
          res = s1.getName().compareTo(s2.getName());
        }
      }
      return res;
    }

? 實際最小資源份額:minShare = Min(資源需求量Demand港庄,配置的最小資源MinShare)
? 是否饑餓:isNeedy = 資源使用量 < minShare(實際最小資源份額)
? 資源分配比:minShareRatio = 資源使用量 / Max(mindshare, 1)
? 資源使用權重比:useToWeightRatio = 資源使用量 / 權重

image.png
  • FSQueue 中MinShare和MaxShare定義
    MinShare = MinResources
    MaxShare = max(maxResource恕曲,minShare)
    如未定義maxResource, 默認為queueMaxResourcesDefault (Integer.MAX_VALUE)

  • FSAppAttempt中MinShare和MaxShare定義
    MinShare = 0
    MaxShare = Integer.MAX_VALUE

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市度帮,隨后出現(xiàn)的幾起案子稿存,更是在濱河造成了極大的恐慌,老刑警劉巖瓣履,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件练俐,死亡現(xiàn)場離奇詭異,居然都是意外死亡腺晾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門归形,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人暇榴,你說我怎么就攤上這事“簦” “怎么了狠轻?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長向楼。 經常有香客問我,道長蜜自,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任箭阶,我火速辦了婚禮,結果婚禮上仇参,老公的妹妹穿的比我還像新娘。我一直安慰自己诈乒,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布喂饥。 她就那樣靜靜地躺著,像睡著了一般员帮。 火紅的嫁衣襯著肌膚如雪导饲。 梳的紋絲不亂的頭發(fā)上捞高,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天渣锦,我揣著相機與錄音,去河邊找鬼袋毙。 笑死,一個胖子當著我的面吹牛听盖,可吹牛的內容都是我干的。 我是一名探鬼主播月幌,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼悬蔽,長吁一口氣:“原來是場噩夢啊……” “哼扯躺!你這毒婦竟也來了蝎困?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤澎埠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蒲稳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氮趋,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡江耀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了祥国。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡舌稀,死狀恐怖,靈堂內的尸體忽然破棺而出椒惨,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布领斥,位于F島的核電站,受9級特大地震影響月洛,放射性物質發(fā)生泄漏。R本人自食惡果不足惜嚼黔,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疫赎。 院中可真熱鬧碎节,春花似錦捧搞、人聲如沸狮荔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雅采,卻和暖如春慨亲,著一層夾襖步出監(jiān)牢的瞬間纲堵,已是汗流浹背巡雨。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工席函, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茂附。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像乒验,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锻全,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容

  • 一.簡述如何安裝配置apache 的一個開源的hadoop 1.使用root賬戶登陸 2.修改ip 3.修改hos...
    梔子花_ef39閱讀 4,933評論 0 52
  • 一妈踊、概念 1.1 什么是調度器 理想情況下,我們應用對Yarn資源的請求應該立刻得到滿足廊营,但現(xiàn)實情況資源往往是有限...
    CJ21閱讀 1,477評論 0 2
  • 1 前言 1 大規(guī)模數(shù)據(jù)如何檢索 當系統(tǒng)數(shù)據(jù)量上了10億、100億條的時候露筒,我們在做系統(tǒng)架構的時候通常會從以下角度...
    MiniSoulBigBang閱讀 1,295評論 0 5
  • Hadoop最初的設計目的是支持大數(shù)據(jù)批處理作業(yè),如日志挖掘慎式、Web索引等作業(yè),為此瞬捕,Hadoop僅提供了一個非常...
    tracy_668閱讀 1,218評論 0 4
  • Tomcat 容器內的優(yōu)化 一、 tomcat的3種運行模式 1肪虎、 bio 默認的模式,性能非常低下,沒有經過任何...
    Tucke閱讀 9,019評論 0 52