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

掃一掃
關(guān)注微信公眾號

資源控制在大數(shù)據(jù)和云計(jì)算平臺中的應(yīng)用
2018-11-29   多智時代

大數(shù)據(jù)227

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

本文針對大數(shù)據(jù)平臺中資源控制這個層面來詳細(xì)介紹資源控制在不同操作系統(tǒng)上的具體技術(shù)實(shí)現(xiàn),以及大數(shù)據(jù)平臺和資源控制的集成。

資源控制使用的系統(tǒng)功能

cgroup簡介

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

cgroup提供一些subsystem作為控制族群樹的根節(jié)點(diǎn),所有的任務(wù)進(jìn)程都以這些子系統(tǒng)為入口按樹狀結(jié)構(gòu)設(shè)置資源配額。Red Hat Linux 7.3 提供 12 個 cgroup 子系統(tǒng),根據(jù)名稱和功能列出如下。

cgroup各子系統(tǒng)功能

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

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

1. 創(chuàng)建一個目錄用于指定需要控制的作業(yè)進(jìn)程,創(chuàng)建之后系統(tǒng)在會每一級自動生成所有的配置文件,可以將該目錄認(rèn)為是一個資源控制組。

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

3. 設(shè)置該資源控制組的物理內(nèi)存使用配額

如果不進(jìn)行設(shè)置,默認(rèn)情況下,繼承根目錄的內(nèi)存配置,即系統(tǒng)內(nèi)存。

下面介紹下大數(shù)據(jù)系統(tǒng)中常用的配額設(shè)置。

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

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

JobObjects簡介

Windows平臺也有對應(yīng)的內(nèi)核對象用來控制作業(yè)對系統(tǒng)資源的訪問,而且控制的范圍比Linux廣,包括剪切板,關(guān)閉Windows的權(quán)限,窗口權(quán)限等。不同于Linux,Windows通過系統(tǒng)API來實(shí)現(xiàn)對作業(yè)對象的訪問。

Windows JobObjects支持的列表

Windows上使用內(nèi)核作業(yè)對象的流程大概如下:

創(chuàng)建內(nèi)核作業(yè)對象:調(diào)用::CreateJobObject()創(chuàng)建一個內(nèi)核對象,剛創(chuàng)建的對象沒有和進(jìn)程關(guān)聯(lián)。

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

將進(jìn)程加入到作業(yè)對象:調(diào)用:: AssignProcessToJobObject()將進(jìn)程加入到作業(yè)中,如果該進(jìn)程產(chǎn)生子進(jìn)程,那么該子進(jìn)程會自動成為作業(yè)的一部分。

關(guān)閉作業(yè)對象:調(diào)用:: CloseHandle()關(guān)閉作業(yè)對象的句柄。

需要注意以下幾點(diǎn):

一個進(jìn)程屬于一個作業(yè)對象之后,不能再assign給另一個作業(yè)對象。

在Windows開啟UAC的系統(tǒng)中,沒有提示權(quán)限的進(jìn)程會被加入到一個默認(rèn)的兼容性系統(tǒng)作業(yè)對象中,所以必須使用CREATE_BREAKAWAY_FROM_JOB參數(shù)創(chuàng)建進(jìn)程使該進(jìn)程脫離默認(rèn)的作業(yè)對象。

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

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

下面直接以C++代碼為例來說明如果創(chuàng)建和管理作業(yè)對象,同時包含如何與ACE進(jìn)程對象如何集成。

Docker容器資源控制

目前在Linux生態(tài)圈,用Docker發(fā)布和運(yùn)行程序基本已經(jīng)成為一個標(biāo)準(zhǔn),同時用Docker管理本地私有云也越來越流行,尤其對于用Kubernetes管理的容器云,如何限制容器資源變得非常重要。

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

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

云計(jì)算中Docker容器的資源收集

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

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

YARN容器管理

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

YARN支持對現(xiàn)有容器大小的調(diào)整(cgroup和jobobjects都支持修改資源配額),當(dāng)用戶從YARN申請了一些固定大小的容器,想改變?nèi)萜髻Y源配額的大小的時候不需要釋放掉這些容器重新申請,YARN支持動態(tài)改變已經(jīng)分配的容器的大小。

結(jié)束語

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

熱詞搜索:大數(shù)據(jù) 云計(jì)算

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

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
91丨porny丨户外露出| 亚洲老妇xxxxxx| 欧洲一区二区三区在线| 91麻豆精品91久久久久久清纯 | 91超碰这里只有精品国产| 久久久精品tv| 国产成人自拍网| 欧美日韩亚洲综合一区| 一区二区三区在线免费播放| 成人高清视频免费观看| 中文字幕巨乱亚洲| 成人美女在线观看| 日本一区二区免费在线| 国产.欧美.日韩| 国产精品美女视频| 国产宾馆实践打屁股91| 欧美激情综合在线| av中文字幕不卡| 国产精品福利在线播放| 99re热视频这里只精品| 亚洲色图视频网| 精品视频在线免费看| 日韩高清在线不卡| 欧美一区二区视频在线观看2022| 亚洲mv大片欧洲mv大片精品| 欧美肥妇bbw| 久久精品国产77777蜜臀| 精品日韩99亚洲| 成人国产精品免费观看视频| 亚洲免费电影在线| 欧美高清dvd| 国产中文一区二区三区| 亚洲国产高清不卡| 日本福利一区二区| 青青草国产精品亚洲专区无| 久久夜色精品国产欧美乱极品| 麻豆久久久久久| 亚洲国产成人在线| 欧美日韩在线不卡| 国产伦精品一区二区三区免费| 国产精品国产三级国产aⅴ中文| 色婷婷综合视频在线观看| 亚洲国产精品久久久久婷婷884| 日韩欧美一区中文| 成人深夜在线观看| 亚洲国产乱码最新视频 | 极品美女销魂一区二区三区免费| 久久久综合精品| 在线免费观看视频一区| 日本亚洲视频在线| 中文字幕亚洲视频| 欧美精品丝袜中出| 成人福利电影精品一区二区在线观看 | 欧美视频一区在线观看| 精彩视频一区二区| 一区二区三区在线免费播放| 日韩免费高清电影| 在线观看国产一区二区| 国产成人在线观看| 久久精品99国产精品| 亚洲一区二区精品视频| 中文字幕国产精品一区二区| 日韩精品资源二区在线| 色综合久久综合| 成人高清免费在线播放| 青青草成人在线观看| 洋洋成人永久网站入口| 国产欧美日韩在线| 日韩一区二区免费在线观看| 在线观看视频91| 色哟哟一区二区在线观看| 丰满亚洲少妇av| 国产美女一区二区| 免费在线成人网| 天堂av在线一区| 亚洲成av人片在线| 一区二区在线观看免费视频播放| 中文字幕在线免费不卡| 国产色产综合产在线视频| 日韩精品一区二区在线| 7777精品伊人久久久大香线蕉完整版 | 久草在线在线精品观看| 亚洲午夜av在线| 亚洲一区二区三区爽爽爽爽爽| **性色生活片久久毛片| 国产精品私人自拍| 国产精品全国免费观看高清| 国产亲近乱来精品视频| 国产无遮挡一区二区三区毛片日本| 日韩西西人体444www| 91精品久久久久久久99蜜桃| 欧美一区二区视频在线观看2020 | 亚洲一区二区偷拍精品| 亚洲美女屁股眼交3| 亚洲欧美国产三级| 亚洲精品你懂的| 亚洲国产一二三| 视频一区视频二区中文字幕| 日韩国产精品久久久久久亚洲| 亚洲成av人片在线| 琪琪久久久久日韩精品| 裸体在线国模精品偷拍| 国产在线精品视频| 国产成人免费视频网站高清观看视频| 国产九色sp调教91| 99精品桃花视频在线观看| 91一区二区在线| 欧美日韩一区小说| 欧美精品久久久久久久久老牛影院| 欧美日韩在线播| 亚洲精品一区二区精华| 亚洲国产精品t66y| 亚洲一区在线观看视频| 日本不卡高清视频| 国产精品自拍毛片| 91女人视频在线观看| 欧美精品一二三四| 久久色成人在线| 亚洲色欲色欲www| 天堂午夜影视日韩欧美一区二区| 久久成人18免费观看| 成人国产精品免费网站| 欧美色中文字幕| 久久美女艺术照精彩视频福利播放| 国产精品久久久久婷婷二区次| 亚洲国产精品一区二区www在线| 理论电影国产精品| 91在线精品一区二区| 欧美日韩一区二区三区不卡| 精品国产91乱码一区二区三区| 国产精品国模大尺度视频| 日韩国产精品大片| 99久久伊人网影院| 日韩美女一区二区三区| 亚洲免费av在线| 国产成人午夜视频| 欧美丰满嫩嫩电影| 亚洲码国产岛国毛片在线| 精品一区二区成人精品| 欧美性猛片aaaaaaa做受| 欧美国产精品久久| 久久99精品网久久| 欧美蜜桃一区二区三区| 最新国产精品久久精品| 国产在线不卡视频| 日韩一级片网址| 偷拍与自拍一区| 91福利区一区二区三区| 欧美国产国产综合| 精品一区二区久久久| 欧美一区午夜精品| 亚洲国产精品天堂| 色视频一区二区| 亚洲色图视频网| 99国产精品视频免费观看| 国产日韩欧美高清在线| 美国十次了思思久久精品导航| 欧美在线一区二区三区| 日韩码欧中文字| 99国产精品久久久| 国产精品黄色在线观看| 粉嫩在线一区二区三区视频| 久久久五月婷婷| 国产成人一级电影| 中文在线资源观看网站视频免费不卡 | 韩日欧美一区二区三区| 日韩一区二区不卡| 麻豆国产精品视频| 欧美v日韩v国产v| 国产最新精品免费| 国产欧美视频在线观看| 懂色av一区二区夜夜嗨| 中文字幕一区二区三区精华液| 99久久免费视频.com| 亚洲图片欧美激情| 色综合色狠狠综合色| 亚洲国产成人高清精品| 91精品国产手机| 国产一区二区三区香蕉| 中文字幕精品三区| 在线观看日韩精品| 首页国产丝袜综合| 2019国产精品| 成人福利视频在线| 亚洲一区在线播放| 精品日产卡一卡二卡麻豆| 国产成人免费视频网站高清观看视频 | 日韩高清电影一区| 久久综合久久鬼色中文字| 懂色一区二区三区免费观看| 亚洲精品一卡二卡| 欧美一区二区日韩一区二区| 国产一区二区在线视频| 亚洲日本电影在线| 欧美一区二区视频在线观看| 国产精品系列在线观看| 亚洲精品视频观看| 亚洲精品在线观看视频| 97久久久精品综合88久久| 午夜av一区二区三区|