1. 程式人生 > >YARN基於IO資源的隔離排程

YARN基於IO資源的隔離排程

前言

眾所周知,目前YARN所支援的資源型別主要有2兩大類:記憶體和CPU.但是其實對於作業系統層面,還有一個重要的資源是沒有被YARN考慮在內的,就是IO資源,這裡的IO資源你可以理解為比如說儲存空間的容量,但是它其實也可以有其它的含義。目前YARN這種不考慮IO資源狀況的排程方式,會造成有些container會消耗大量的IO資源,儘管可能他們只用了一點點的,記憶體和CPU資源。所以把IO資源也作為YARN排程的一個需求條件之一,是一個大有好處並且有其使用場景的功能點。

IO資源的概述

剛剛在上文已經提過了,這裡的IO資源並不僅僅是指磁碟容量空間,它還可以是一種別的能力,比如說iops(每秒io次數),頻寬等等。只是說,為了方便理解,我們暫且以磁碟空間作為一個節點IO資源的表示,磁碟空間越多,代表其所能處理的io次數也自然比較多。

YARN基於IO資源的排程和隔離

這裡我們主要關注2點:

  • 一個是IO資源的排程,這個排程關注的點主要是防止io資源的過度分配,導致過載的問題。
  • 還有一個是IO隔離的問題。類似於CPU使用的隔離,我們同樣要保證一定的IO資源使用隔離,防止不同使用者應用的相互干擾。

IO資源的排程

IO資源的排程在YARN層面,我們想讓IO也作為其中的一個判斷條件,就要把它也作為一個資源field,比如我們這裡用vdisk來表示需要的IO資源,vdisk越大,表示需要的IO資源越多,新的資源請求例項物件定義如下:

message ResourceProto {
  optional int32
memory = 1; optional int32 virtual_cores = 2; optional int32 vdisks = 3; }

就是說在ResourceManager在分配container的時候,還需要帶上vdisk資源的請求判斷,這裡每個節點的vdisk資源可以以2倍於實際磁碟數的標準來配置,邏輯上的含義即為IO處理能力的一種抽象。

IO資源的隔離

類似於Cgroup下的CPU隔離,我們在系統IO層面也可以做類似的程序間的隔離。這裡會用到Cgroup下的blkio子系統,它可以用來做這方面的控制隔離。

blkio子系統的IO隔離目前有2種方式:

  • 第一種,基於權重值設定的CFQ(完全公平排程演算法)。每個程序會按照規定比例權重允許執行相應的IO運算元量。
  • 第二種,IO上限值的操作控制,這裡不僅僅可以是IO的運算元,還可以是頻寬流量的限制。

這裡的IO隔離,主要指以上提到的2點。而對於具體採用哪種方式,我們可以通過在YARN內設定不同的隔離類來使用。

不過目前基於IO資源的排程方面,並沒有在社群完全被實現,不過這個功能的可用性和實施使用這塊還是有其實際的使用用途的,感興趣的同學可以前往YARN-2139.

參考資料

相關推薦

YARN基於IO資源隔離排程

前言 眾所周知,目前YARN所支援的資源型別主要有2兩大類:記憶體和CPU.但是其實對於作業系統層面,還有一個重要的資源是沒有被YARN考慮在內的,就是IO資源,這裡的IO資源你可以理解為比如說儲存空間的容量,但是它其實也可以有其它的含義。目前YARN這種

Hadoop Yarn記憶體資源隔離實現原理——基於執行緒監控的記憶體隔離方案

注:本文以hadoop-2.5.0-cdh5.3.2為例進行說明。 Hadoop Yarn的資源隔離是指為執行著不同任務的“Container”提供可獨立使用的計算資源,以避免它們之間相互干擾。目前支援兩種型別的資源隔離:CPU和記憶體,對於這兩種型別的資源,Yarn

YARN中記憶體和CPU兩種資源排程隔離實現詳解

Hadoop Yarn的資源隔離是指為執行著不同任務的“Container”提供可獨立使用的計算資源,以避免它們之間相互干擾。目前支援兩種型別的資源隔離:CPU和記憶體,對於這兩種型別的資源,Yarn使用了不同的資源隔離方案。對於CPU而言,它是一種“彈性”資源,使用量大小不

spark on yarn cgroup 資源隔離(cpu篇)

文章目錄 環境配置 背景 目標 資源隔離 Cgroup & LinuxContainerExecutor CPU 資源隔離 hard limit soft limit

spark提交任務的模式—— standalone模式與yarn模式、資源排程與任務排程

standalone模式 在客戶端提交Application,Driver在客戶端啟動; 客戶端向Master申請資源,Master返回Worker節點; Driver向Worker節點發送task,監控task執行,回收結果。 在客戶端提交App

Oracle 12c系列(四)|資源隔離IO、記憶體、CPU

伺服器主機提供IO、記憶體、CPU、儲存空間等資源為資料庫使用,Oracle使用Flex Diskgroup為資料庫提供儲存空間並做了相應的資源隔離。下面我們來看下Oracle是如何為不同的PDB做IO、記憶體、CPU限制的。 一、IO 資源隔離 12c

利用yarn多佇列實現hadoop資源隔離

大資料處理離不開hadoop叢集的部署和管理,對於本來硬體資源就不多的創業團隊來說,做好資源的共享和隔離是很有必要的,畢竟不像BAT那麼豪,那麼怎麼樣能把有限的節點同時分享給多組使用者使用而且互不影響呢,我們來研究一下yarn多佇列做資源隔離 請尊重原創,轉載請註明來源

Hadoop YARN資源隔離技術

YARN對記憶體資源和CPU資源採用了不同的資源隔離方案。對於記憶體資源,它是一種限制性資源,它的量的大小直接決定應用程式的死活,因為應用程式到達記憶體限制,會發生OOM,就會被殺死。CPU資源一般用Cgroups進行資源控制,Cgroups控制資源測試可以參見這篇博文Cgroups控制cpu,記憶體,i

YARN 早就支援CPU資源排程

首先,yarn剛出世的時候,對於CPU的排程只是在計劃中,而前段時間一直用的2.0.0的版本,也做過測試,確實對cpu的資源限制不予理睬。 但是,前不久,升級到了2.3.0,沒有驗證這個功能是否實現,一直認為對於公平排程器的佇列配置,vcores的配置無所謂,直到上次把這個

【Hadoop入門學習系列之三】YARN原理和資源排程

一.Hadoop YARN產生背景 Mapreduce1.0版本固有的問題 擴充套件性受限 單點故障 難以支援MR之外的計算 資源利用率 運維成本和資料共享【多計算框架各自為戰,資料共享困難】  MR:離線計算框架  Storm:實時計算框

不可不知的資源管理排程器Hadoop Yarn

Yarn(Yet Another Resource Negotiator)是一個資源排程平臺,負責為運算程式如Spark、MapReduce分配資源和排程,不參與使用者程式內部工作。同樣是Master/Slave架構。 以下圖MapReduce提交到Yarn上執行為例,看看Yarn主要包括哪些核心元件以及每個

Impala源碼之資源管理與資源隔離

查詢 圖片 src 阻塞隊列 AI 詳細 利用 生成 獨立 本文由 網易雲 發布。 前言 Impala是一個MPP架構的查詢系統,為了做到平臺化服務,首先需要考慮就是如何做到資源隔離,多個產品之間盡可能小的甚至毫無影響。對於這種需求,最好的隔離方案無疑是物理機器上

利用cgroup限制instance磁盤io資源使用

loaded load 安裝 product 開啟 .com read net nag 1、安裝libcgroup軟件包;[root@pre-pool1-r6-06-08-18-01 ~]# yum install libcgroup Loaded plugins: pro

IO多路復用/基於IO多路復用+socket實現並發請求/協程

所有 remove 告訴 安全 pso rgs 一個 epo 新的 http://www.cnblogs.com/alex3714/articles/5876749.html http://www.cnblogs.com/Eva-J/articles/8324837.ht

Docker安全之使用者資源隔離

來源:http://www.zimug.com/453.html docker進行資源隔離的6種namespace namespace 隔離內容 核心版本 UTS 主機名與域名 Linux

基於Netty+Zookeeper+Quartz排程分析

前言 前幾篇文章分別從使用和原始碼層面對Quartz做了簡單的分析,在分析的過程中也發現了Quartz不足的地方;比如底層排程依賴資料庫的悲觀鎖,誰先搶到誰排程,這樣會導致節點負載不均衡;還有排程和執行耦合在一起,導致排程器會受到業務的影響;下面看看如何來解決這幾個問題; 思路 排程

Kubernetes資源排程3-資源動態排程

基於Kubernetes的容器雲平臺資源排程策略 該篇論文質量較高,認真學習一下。 排程思想大致分為兩種  擴散以及貪心。 擴散:儘量將服務排程到不同的叢集節點上以此來保證資源的均衡利用率,避免單機故障的風險 貪心:儘量將所有服務排程到同一節點上,提高資源的利用率 叢集

Kubernetes資源排程2-資源動態排程

1.基於SLA驅動的資源動態排程演算法 將應用分為不同型別,將不同應用排程到不同資源狀態節點上,減少應用因資源不足帶來的問題,根據SLA協議實時監控應用資源使用狀況,動態調整應用資源佔用率,提高資源使用率。 SLA協議:Service-Level Agreement的縮寫,意思是服務等級協議

基於JAVA的磁碟排程演算法

在作業系統課上的一點小感想,基於JAVA的磁碟排程演算法,分享出來和大家一起學習。 先來先服務(FCFS)演算法。即先來的請求先被響應。FCFS策略為我們建立起一個隨機訪問機制的模型,但是假如用這個策略反覆響應從裡到外的請求,那麼將會消耗大量的時間。FCFS也被看作是最簡單的磁碟排程演算法。 最短

基於java的程序排程演算法

在作業系統課上的一點小感想,基於java的程序排程演算法,分享出來和大家一起學習。 該工程主要有三個實現類: Process(程序類),主要用來例項化各個不同的程序 ProcessBlock(程序控制塊類),用來為每個程序分配PCB,該類例項化後為程序類的類成員變數 ProcessContr