国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

資源控制在大數據和云計算平臺中的應用
2018-11-29   多智時代

大數據227

大數據迅速發展的今天,很大一部分支持來自于底層技術的不斷發展,其中非常重要的一點就是系統資源的管理和控制, 大數據平臺 的核心就是對資源的調度管理,在調度和管理之后如何對這些資源進行控制便成了另一個重要的問題。大數據系統中用戶成千上萬的作業進程跑在集群中,如果不能對這些進程的資源進行控制,那么 大數據平臺 將變得舉步維艱,整個集群便會隨時崩潰。同時,大數據作業的調度也是基于資源的配額進行分配,大數據的作業本身就承載了資源配額的屬性,但是這些作業是否按照配額進行運行和計算,是否超過了指定的配額導致overuse,是否達不到指定的配額導致資源浪費,這一直以來都是 大數據平臺 面對和要解決的問題。

本文針對大數據平臺中資源控制這個層面來詳細介紹資源控制在不同操作系統上的具體技術實現,以及大數據平臺和資源控制的集成。

資源控制使用的系統功能

cgroup簡介

cgroup是Linux內核的一部分,cgroup可以為一組進程定義組群分配資源,這個組群分配資源可以包含CPU時間,內存,網絡帶寬,并且定義的這些資源分配可以動態修改。cgroup以一種層級結構(hierarchical)聚合和管理進程,將所有任務進程以文件夾的形式組成一個控制族群樹,子控制組自動繼承父節點的特定屬性,子控制組還可以有自己特定的屬性。

cgroup提供一些subsystem作為控制族群樹的根節點,所有的任務進程都以這些子系統為入口按樹狀結構設置資源配額。Red Hat Linux 7.3 提供 12 個 cgroup 子系統,根據名稱和功能列出如下。

cgroup各子系統功能

可通過以下命令查看操作系統支持的cgroup子系統,同時顯示各個子系統掛載的根目錄(也可以查看系統文件/proc/mount或者使用命令lssubsys -a):

cgroup的操作沒有提供系統API調用或者命令行,而是直接訪問cgroup mount的這個文件系統,舉個例子描述下cgroup接口的使用方式。

1. 創建一個目錄用于指定需要控制的作業進程,創建之后系統在會每一級自動生成所有的配置文件,可以將該目錄認為是一個資源控制組。

2. 添加需要的進程到該資源控制組,可以添加多個進程ID

3. 設置該資源控制組的物理內存使用配額

如果不進行設置,默認情況下,繼承根目錄的內存配置,即系統內存。

下面介紹下大數據系統中常用的配額設置。

內存:物理內存的設置文件為memory子系統下的memory.limit_in_bytes,虛擬內存為memory.memsw.limit_in_bytes。如果同時設置這兩個參數,需要先設置memory.limit_in_bytes,因為虛擬內存的配額只有在物理內存用完后開始生效。在Linux系統上,只有當物理內存消耗完后才開始消耗虛擬內存,超過配額后再申請的話就會觸發OOM kill掉進程。注意:OOM killer也可以關閉,需要向memory.oom_control中寫入1,這樣當進程嘗試申請的內存超過允許,那么它就會被暫停,直到額外的內存被釋放。

CPU:對CPU的配額控制是通過CPU子系統下的cpu.cfs_period_us和cpu.cfs_quota_us兩個參數控制。cpu.cfs_period_us表示重新分配CPU時間的周期,默認為 100000,即百毫秒。cpu.cfs_quota_us就是在這期間內可使用的 cpu 時間,默認 -1,即無限制。所以默認情況下CPU的使用為100%。如果需要將CPU的使用設置為50%,可以將 cpu.cfs_quota_us設為 50000,cpu.cfs_period_us保持100000,表示每隔100毫秒分配CPU時間,持續使用50毫秒。對CPU的限制不像內存,超過配額后再申請的話就會觸發OOM kill掉進程,CPU設置配額后進程不會超過該配額的使用。

JobObjects簡介

Windows平臺也有對應的內核對象用來控制作業對系統資源的訪問,而且控制的范圍比Linux廣,包括剪切板,關閉Windows的權限,窗口權限等。不同于Linux,Windows通過系統API來實現對作業對象的訪問。

Windows JobObjects支持的列表

Windows上使用內核作業對象的流程大概如下:

創建內核作業對象:調用::CreateJobObject()創建一個內核對象,剛創建的對象沒有和進程關聯。

把限制屬性設置到作業對象:調用:: SetInformationJobObject()可以設置如上列表中的限制屬性到該作業對象。

將進程加入到作業對象:調用:: AssignProcessToJobObject()將進程加入到作業中,如果該進程產生子進程,那么該子進程會自動成為作業的一部分。

關閉作業對象:調用:: CloseHandle()關閉作業對象的句柄。

需要注意以下幾點:

一個進程屬于一個作業對象之后,不能再assign給另一個作業對象。

在Windows開啟UAC的系統中,沒有提示權限的進程會被加入到一個默認的兼容性系統作業對象中,所以必須使用CREATE_BREAKAWAY_FROM_JOB參數創建進程使該進程脫離默認的作業對象。

新啟動的進程最好使用CREATE_SUSPEND參數這樣可以在進程啟動之前加入到作業對象中,防止起啟動的新的子進程逃離作業對象。

Windows對于內存的管理與Linux不同,Windows上的物理內存指的是WorkingSet,虛擬內存指的是committed memory,在Windows任務管理器中看的話物理內存指的是“工作設置(內存)”,虛擬內存指的是“提交大小”。CPU通過CpuRate設置,CpuRate的含義是線程在每10000個處理器調度周期內被調度的周期數,比如需要限制到20%,就設置CpuRate為2000。

下面直接以C++代碼為例來說明如果創建和管理作業對象,同時包含如何與ACE進程對象如何集成。

Docker容器資源控制

目前在Linux生態圈,用Docker發布和運行程序基本已經成為一個標準,同時用Docker管理本地私有云也越來越流行,尤其對于用Kubernetes管理的容器云,如何限制容器資源變得非常重要。

在RedHat上,Docker擁有自己的cgroup控制目錄,位于各個子系統下的system.slice的文件夾里面。當我們啟動一個docker容器之后,就會產生這個容器ID開頭的一個子目錄,用來配置這個容器里面的所有進程對系統資源的使用。

其中task目錄中存放的為容器中進程的PID,以我們這個示例來說,我們在容器中啟動了 /bin/sh 進程,這個進程ID為2730。

云計算中Docker容器的資源收集

目前通過Docker容器部署大數據平臺也比較流行,但是大數據平臺需要獲取每個節點運行環境的資源配額,對于已經運行在Docker容器里面的進程,如何判斷自己擁有多少系統資源也可以通過cgroup文件系統獲取。但是Docker容器里面看到的cgroup的文件目錄和宿主機不同,docker容器里面沒有system.slice文件夾,直接以/sys/fs/cgroup/開頭,可以通過命令查看。所以可以通過這個目錄下的memory.limit_in_bytes獲取容器自身的物理內存配額。對于容器中CPU core數目的獲取,可以通過這個公式獲取到近似的core數:min(1, (int)ceil(cpu.cfs_quota_us/cpu.cfs_period_us))。

用Kubernetes部署的容器平臺需要提前定義資源配額,否則容器可以使用到宿主機的所有資源,資源配額在YAML文件的resources中定義:

YARN容器管理

作為容器管理的平臺,Kubernetes主要用來在容器中部署分布式應用程序,YARN作為一個資源管理平臺也支持容器的管理,主要用來以容器的方式運行大數據作業。像Spark將YARN作為資源管理器運行Spark job。

YARN支持對現有容器大小的調整(cgroup和jobobjects都支持修改資源配額),當用戶從YARN申請了一些固定大小的容器,想改變容器資源配額的大小的時候不需要釋放掉這些容器重新申請,YARN支持動態改變已經分配的容器的大小。

結束語

隨著大數據和云計算技術的發展,資源控制和管理作為底層技術已經非常成熟,掌握這些技術便可以在大數據處理中游刃有余。

熱詞搜索:大數據 云計算

上一篇:網管福利!局域網幾大棘手問題及解決方案
下一篇:安全使用Tor瀏覽器的7個技巧

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
午夜精品久久久久影视| 久久在线观看视频| 欧美日韩亚洲一区三区 | 欧美精品日韩三级| 欧美亚洲免费在线| 午夜精品999| 亚洲一区久久久| 一区二区高清视频在线观看| 亚洲国产精品激情在线观看| 黄色资源网久久资源365| 国产精品综合久久久| 国产精品久久亚洲7777| 国产精品国产| 国产精品日本精品| 国产精品欧美激情| 国产精品豆花视频| 国产精品社区| 国产日韩精品在线| 国产一区二区三区成人欧美日韩在线观看 | 裸体一区二区| 久久综合狠狠综合久久综青草| 久久久久久久综合| 另类激情亚洲| 欧美高清成人| 欧美午夜精品久久久久久久| 国产精品一二三四| 狠狠色丁香婷婷综合影院| 在线播放亚洲| 亚洲美女网站| 亚洲中午字幕| 久久免费99精品久久久久久| 蜜臀久久99精品久久久画质超高清| 欧美成人黑人xx视频免费观看| 欧美激情一区二区三区蜜桃视频| 欧美日韩国产小视频| 国产精品女人毛片| 在线成人av| 一区二区三区不卡视频在线观看 | 欧美日韩在线播放三区四区| 国产精品入口夜色视频大尺度| 国产曰批免费观看久久久| 亚洲国产综合91精品麻豆| 99在线热播精品免费99热| 午夜视黄欧洲亚洲| 免费日韩成人| 国产精品尤物福利片在线观看| 在线观看国产成人av片| 亚洲视屏在线播放| 蜜桃av噜噜一区| 国产精品美腿一区在线看| 尤物在线观看一区| 亚洲视频一二| 免费成人在线观看视频| 国产精品你懂的在线| 亚洲精品国产精品国自产在线 | 亚洲视屏一区| 久久这里有精品视频| 欧美日韩视频| 樱桃视频在线观看一区| 亚洲综合第一页| 欧美高清视频在线 | 亚洲全部视频| 久久av一区二区三区亚洲| 欧美日韩高清区| 伊人狠狠色j香婷婷综合| 亚洲午夜小视频| 欧美激情网友自拍| 一区二区在线观看av| 亚洲欧美一区在线| 欧美日韩一区二区三区在线| 1000部精品久久久久久久久| 性色av一区二区三区在线观看| 欧美日韩高清一区| 亚洲久久一区| 久久尤物视频| 国产一区高清视频| 欧美一区二区免费观在线| 国产精品九九| 亚洲视频自拍偷拍| 欧美三级网址| 夜夜嗨av一区二区三区网页| 欧美激情在线播放| 亚洲国产精品一区二区第四页av| 久久久久国产精品一区二区| 国产色爱av资源综合区| 亚洲欧美日韩精品在线| 国产精品日韩欧美一区二区| 亚洲午夜电影在线观看| 欧美视频在线免费看| 9国产精品视频| 欧美精品三区| 亚洲精品国产无天堂网2021| 欧美华人在线视频| 日韩视频中文| 欧美三日本三级少妇三2023| 在线亚洲一区| 国产精品日韩欧美一区| 欧美淫片网站| 精品不卡一区二区三区| 蜜桃av综合| 亚洲免费电影在线| 欧美日韩综合一区| 午夜精品成人在线| 国产亚洲欧美一级| 毛片基地黄久久久久久天堂| 亚洲经典在线看| 欧美三级日本三级少妇99| 中文av一区二区| 国产精品一二三| 久久精品免费看| 亚洲国产中文字幕在线观看| 欧美日韩系列| 欧美一级淫片aaaaaaa视频| 国内免费精品永久在线视频| 免费黄网站欧美| 99re6这里只有精品| 国产精品久久久久久五月尺| 久久国产综合精品| 91久久精品国产| 国产精品海角社区在线观看| 欧美在线观看视频一区二区| 亚洲福利视频在线| 欧美日韩一区综合| 久久精品国产亚洲5555| 亚洲精品久久久久久下一站| 国产精品视频久久久| 久久久久久久综合狠狠综合| 日韩亚洲欧美成人| 国产亚洲精品aa| 欧美区二区三区| 久久av资源网| 亚洲三级观看| 国产亚洲一区在线播放| 欧美高清自拍一区| 性视频1819p久久| 亚洲欧洲日本国产| 国产亚洲欧美日韩精品| 欧美日韩精品三区| 久久久人成影片一区二区三区观看| 亚洲精品乱码久久久久久蜜桃麻豆| 国产欧美一区二区三区久久 | 亚洲无玛一区| 在线精品视频一区二区三四| 国产精品久久久久久久久久直播 | 欧美日韩在线不卡| 久久九九精品| 亚洲一区二区欧美日韩| 亚洲国产美女精品久久久久∴| 国产精品日韩在线| 欧美区国产区| 欧美1区2区| 久久久久9999亚洲精品| 亚洲午夜av在线| 亚洲日本在线视频观看| 国内精品国产成人| 国产精品一区二区男女羞羞无遮挡 | 在线精品亚洲| 国产深夜精品| 国产精品色网| 欧美午夜欧美| 欧美精品一区二区高清在线观看| 久久久久久97三级| 欧美自拍偷拍| 亚洲欧美日韩在线播放| 夜夜狂射影院欧美极品| 最新日韩欧美| 91久久中文| 亚洲国产欧美国产综合一区| 黄色成人av网站| 狠狠色香婷婷久久亚洲精品| 国产欧美日本一区二区三区| 国产精品伦理| 欧美视频在线一区| 欧美午夜电影在线观看| 欧美日韩免费网站| 欧美日韩在线播放一区| 欧美激情国产日韩| 欧美激情一区二区三区全黄| 欧美成人蜜桃| 欧美精品尤物在线| 欧美伦理a级免费电影| 欧美精品一区二区三区四区| 欧美激情一区二区三区全黄| 欧美乱大交xxxxx| 欧美精品亚洲二区| 欧美日韩国产a| 欧美日韩在线免费视频| 欧美午夜影院| 国产日本欧美一区二区三区在线| 国产精品毛片va一区二区三区 | 久久久久国色av免费看影院 | 国模私拍视频一区| 狠狠色伊人亚洲综合成人| 在线成人免费观看| 亚洲国产精品美女| 日韩一级在线| 亚洲影视中文字幕| 久久精品视频网| 美女网站在线免费欧美精品| 欧美劲爆第一页|