国产一级一区二区_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久久夜色精品国产_欧美色网一区二区
黄色亚洲在线| 午夜激情久久久| 亚洲国产免费| 一本色道久久88精品综合| 免费久久久一本精品久久区| 在线成人亚洲| 久久综合色播五月| 好看的av在线不卡观看| 欧美一区二区精品| 久久午夜精品| 国产一区二区三区自拍| 久久久国产精品一区二区中文| 欧美视频成人| 亚洲午夜黄色| 国产精品永久免费| 在线观看视频日韩| 欧美暴力喷水在线| 在线亚洲高清视频| 国产精品嫩草影院av蜜臀| 午夜精品视频一区| 国产中文一区二区| 久久亚洲一区二区| 亚洲人成网站色ww在线| 欧美日韩国产在线一区| 日韩系列在线| 国产九色精品成人porny| 欧美一区二区在线| 亚洲电影在线看| 欧美三级资源在线| 国产精品久久久久久模特| 亚洲人精品午夜| 欧美 日韩 国产一区二区在线视频| 亚洲另类自拍| 国产精品久久久一本精品| 久久精品在这里| 亚洲精品一区中文| 国产精品影片在线观看| 久久国产精品99国产精| 日韩午夜电影| 欧美日韩精品综合在线| 国产精品国产三级国产a| 亚洲欧美一区二区激情| 黄色日韩在线| 国产精品国产三级国产aⅴ9色| 久久久久久久999| 亚洲网站在线观看| 激情久久影院| 国产精品麻豆va在线播放| 久久综合一区二区| 亚洲欧美视频在线观看视频| 亚洲精品一区在线观看香蕉| 国产精品入口夜色视频大尺度 | 国产麻豆精品视频| 欧美电影在线观看完整版| 亚洲欧美日韩精品在线| 亚洲黄一区二区| 国产亚洲精品v| 欧美日韩中文字幕综合视频| 亚洲欧美中文另类| 一区二区三区日韩精品视频| 在线视频观看日韩| 欧美香蕉大胸在线视频观看| 亚洲欧美国产精品桃花| 亚洲日韩成人| 在线精品视频一区二区三四| 国产日韩欧美一区二区三区在线观看 | 免费亚洲网站| 久久精品欧美日韩精品| 性欧美办公室18xxxxhd| 99亚洲伊人久久精品影院红桃| 亚洲日本一区二区| 亚洲国产日韩欧美在线99| 在线观看欧美精品| 国内精品视频在线观看| 国产精品久久二区| 国产精品videosex极品| 欧美日韩国产精品专区| 男女视频一区二区| 欧美不卡福利| 欧美护士18xxxxhd| 老司机午夜精品| 老司机精品久久| 狂野欧美性猛交xxxx巴西| 久久欧美肥婆一二区| 久久免费午夜影院| 美女网站久久| 欧美国产在线电影| 欧美激情影音先锋| 欧美性猛交xxxx乱大交退制版 | 亚洲欧美激情一区| 亚洲欧美日韩电影| 性18欧美另类| 久久久久久午夜| 麻豆精品网站| 欧美日韩视频不卡| 欧美精品久久久久久| 欧美日韩另类一区| 国产精品大全| 国产在线视频欧美一区二区三区| 激情综合久久| 亚洲第一毛片| 一区二区三区视频免费在线观看| 亚洲欧美国产制服动漫| 久久精品国产亚洲高清剧情介绍| 久久视频国产精品免费视频在线| 久久久人人人| 欧美激情麻豆| 国产欧美精品久久| 亚洲高清自拍| 制服丝袜激情欧洲亚洲| 亚洲欧美一区二区三区在线| 久久久欧美精品| 欧美日韩无遮挡| 国产一区二区三区直播精品电影| 亚洲国产精品久久久久久女王| 99热这里只有成人精品国产| 亚洲女同精品视频| 欧美69wwwcom| 国产精品狼人久久影院观看方式| 国语自产偷拍精品视频偷| 日韩亚洲国产欧美| 久久精品成人欧美大片古装| 久久另类ts人妖一区二区| 欧美日韩一区二区三区四区在线观看| 国产亚洲亚洲| 亚洲欧美另类在线观看| 免费在线观看成人av| 国产精品日韩欧美一区二区| 亚洲高清av在线| 欧美一级电影久久| 欧美日本一区二区视频在线观看| 国产精品自在线| av成人老司机| 欧美成人国产va精品日本一级| 国产午夜精品麻豆| 亚洲视频香蕉人妖| 欧美77777| 国内精品久久久久伊人av| 夜夜嗨av色综合久久久综合网 | 99re热精品| 久久女同互慰一区二区三区| 国产女精品视频网站免费| 亚洲一卡久久| 国产精品久久久久久久免费软件| 中文国产成人精品| 国产麻豆精品theporn| 欧美一区二区成人6969| 国产中文一区二区三区| 久久婷婷国产综合国色天香| 在线观看视频亚洲| 欧美日韩国产123| 亚洲综合日韩在线| 极品日韩av| 欧美激情视频一区二区三区在线播放 | 欧美精品日本| 亚洲一区二区三区高清| 国内精品久久久久久| 欧美大色视频| 亚洲一区二区三区午夜| 激情国产一区| 欧美视频免费看| 久久精品一区四区| 99re在线精品| 国语精品中文字幕| 欧美久久综合| 久久久99爱| 亚洲午夜三级在线| 亚洲成色www久久网站| 欧美性大战久久久久久久| 久久久久久色| 亚洲影院一区| 亚洲高清自拍| 国产欧美日本在线| 欧美精品在线看| 久久精品二区三区| 亚洲午夜性刺激影院| 在线观看视频一区| 国产精品一区免费观看| 欧美α欧美αv大片| 久久精品国产2020观看福利| 一区二区三区日韩| 亚洲第一搞黄网站| 国产丝袜一区二区| 国产精品久久久久永久免费观看| 欧美v国产在线一区二区三区| 欧美一级视频免费在线观看| 亚洲久久视频| 亚洲国产精品视频| 国模精品一区二区三区色天香| 欧美三级网址| 欧美日韩国产片| 欧美高清在线| 久久三级福利| 久久久久久久一区二区| 亚洲欧美日韩一区二区三区在线观看| 亚洲国内高清视频| 亚洲高清色综合| 激情亚洲一区二区三区四区| 国产一区二区三区免费在线观看| 国产精品久久久久国产精品日日|