999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種高性能計(jì)算集群登錄節(jié)點(diǎn)資源限制方法

2021-05-29 11:56:04池成悅韋建文周子豪
實(shí)驗(yàn)室研究與探索 2021年4期
關(guān)鍵詞:懲罰資源用戶(hù)

唐 金,池成悅,韋建文,周子豪

(上海交通大學(xué)網(wǎng)絡(luò)信息中心,上海 200240)

0 引言

近年來(lái),隨著高等教育經(jīng)費(fèi)投入的增加以及計(jì)算資源需求的不斷增長(zhǎng),國(guó)內(nèi)外很多高校和科研機(jī)構(gòu)紛紛建設(shè)了高性能計(jì)算集群[1-3]。上海交通大學(xué)于2013年建成并投入使用高性能計(jì)算集群。經(jīng)過(guò)多年的發(fā)展,目前集群算力已達(dá)到2.1PFLOPS,科研用戶(hù)數(shù)逐漸增多,日均服務(wù)機(jī)時(shí)直線上升,科研成果不斷創(chuàng)新高[4-7]。

集群和用戶(hù)規(guī)模的不斷擴(kuò)大增加了集群登錄節(jié)點(diǎn)的負(fù)載以及管理上的難度[8]。集群登錄節(jié)點(diǎn)屬于共享資源,允許用戶(hù)進(jìn)行一些簡(jiǎn)單不耗資源的操作。但是,不同用戶(hù)對(duì)集群的使用操作以及相關(guān)規(guī)章制度的了解存在著一定的差異。有些用戶(hù)由于剛剛接觸高性能計(jì)算,對(duì)集群認(rèn)知比較有限,經(jīng)常會(huì)直接在登錄節(jié)點(diǎn)運(yùn)行耗費(fèi)資源的任務(wù),導(dǎo)致登錄節(jié)點(diǎn)長(zhǎng)時(shí)間負(fù)載過(guò)高[9]。隨著高性能計(jì)算集群的用戶(hù)數(shù)量逐漸增加,對(duì)集群自動(dòng)化需求越來(lái)越高。因此上海交通大學(xué)高性能計(jì)算集群急需一種自動(dòng)、實(shí)時(shí)的監(jiān)測(cè)技術(shù)來(lái)調(diào)節(jié)登錄節(jié)點(diǎn)資源使用[10]。

國(guó)外幾個(gè)HPC中心曾嘗試使用cgroup 對(duì)共享資源進(jìn)行限制。由印第安納大學(xué)編寫(xiě)的“cgroup_py”腳本,可以起到限制用戶(hù)資源的作用,但該腳本與CentOS 7 系統(tǒng)或基于Systemd 的系統(tǒng)不兼容;由美國(guó)普渡大學(xué)Maves和John 編寫(xiě)的“cgroups_py”腳本,可以對(duì)給定用戶(hù)的Systemd user-$ UID.slice 資源進(jìn)行限制,該方法基于簡(jiǎn)單的閾值法,只能起到靜態(tài)的限制作用,可擴(kuò)展性不強(qiáng)。猶他大學(xué)Dylan、Robben 等在基于Cgroups和Systemd理論基礎(chǔ)上,提出了一種可以對(duì)共享資源進(jìn)行監(jiān)測(cè)的方法Arbiter2,該方法不僅可以監(jiān)視用戶(hù)CPU和內(nèi)存使用率,還可以強(qiáng)制執(zhí)行默認(rèn)資源限制、懲罰消耗共享資源過(guò)多的用戶(hù)。

本文結(jié)合上海交通大學(xué)高性能計(jì)算集群的實(shí)際運(yùn)行情況,在基于Arbiter2 的實(shí)現(xiàn)原理上,從資源和時(shí)間兩個(gè)維度限制超出閾值的用戶(hù),并設(shè)計(jì)了多層懲罰機(jī)制,動(dòng)態(tài)調(diào)整用戶(hù)可用資源。實(shí)際應(yīng)用結(jié)果表明,登錄節(jié)點(diǎn)上用戶(hù)違規(guī)次數(shù)大幅降低,資源利用率始終處于正常水平。

1 關(guān)鍵技術(shù)及實(shí)現(xiàn)原理

1.1 關(guān)鍵技術(shù)Cgroups和Systemd

Cgroups 全稱(chēng)是Control Groups,早在2006 年由Google工程師(主要是Paul Menage 和Rohit Seth)發(fā)起,并于2007 年嵌入在linux內(nèi)核中,成為一種可以限制、記錄任務(wù)組所使用的物理資源的機(jī)制,如限制CPU、內(nèi)存、I/O 等資源的使用。Cgroups 將系統(tǒng)中的進(jìn)程(任務(wù))進(jìn)行分組化管理,每組進(jìn)程為一個(gè)控制族群(control group)。控制族群以層級(jí)(hierarchy)的形式組織成一顆控制族群樹(shù),子族群繼承父族群的特性。對(duì)CPU、內(nèi)存等資源進(jìn)行控制的子系統(tǒng)稱(chēng)之為資源控制器,必須要附加到某個(gè)層級(jí)上才能起作用,從而對(duì)層級(jí)上的控制族群進(jìn)行管理[11]。

Systemd通過(guò)提供內(nèi)在機(jī)制、默認(rèn)設(shè)置和相關(guān)的操作命令,降低了Cgroups的使用難度,提供了一種便捷的方式。在系統(tǒng)的初始化階段,Systemd會(huì)把資源控制器即子系掛載到默認(rèn)的/sys/fs/cgroup/目錄下面,并自動(dòng)創(chuàng)建進(jìn)程組(slice)、外部進(jìn)程(scope)和系統(tǒng)服務(wù)(service unit)來(lái)為Cgroups 樹(shù)提供統(tǒng)一的層級(jí)結(jié)構(gòu)。在層級(jí)頂端Systemd 會(huì)自動(dòng)創(chuàng)建4 個(gè)slice(-.slice,system.slice,user.slice,machine.slice)來(lái)監(jiān)測(cè)并限制用戶(hù)行為,在用戶(hù)登錄時(shí)自動(dòng)創(chuàng)建,在會(huì)話結(jié)束后自動(dòng)銷(xiāo)毀。默認(rèn)情況下,內(nèi)存和CPU 的控制器都未啟用,可以通過(guò)systemctl set-property user-# UID.slice 來(lái)啟用,并設(shè)置:slice CPU Accounting=true,Memory Accounting=true[12]。

1.2 實(shí)現(xiàn)原理

(1)監(jiān)測(cè)資源使用率。為了收集登錄節(jié)點(diǎn)用戶(hù)資源使用信息,需要從Cgroups 層次結(jié)構(gòu)/sys/fs/cgroup中提取用戶(hù)CPU 和內(nèi)存的使用率。當(dāng)用戶(hù)登錄集群時(shí),會(huì)在每個(gè)用戶(hù)的控制器下創(chuàng)建一個(gè)slice 文件,用于記錄用戶(hù)資源使用信息,CPU 控制器下的slice 位于/sys/fs/cgroup/cpu/user.slice/user-#UID.slice,內(nèi)存控制器的slice 位于在/sys/fs/cgroup/mem/user.slice/user-#UID.slice。cpu.usage_percpu 用于記錄CPU 資源使用率,但是該使用率是指用戶(hù)自建立cgroups以來(lái)的CPU使用率,可通過(guò)提取時(shí)鐘頻率的差異來(lái)表示當(dāng)前CPU使用率。memory.usage_in_bytes 用于內(nèi)存使用率,為了準(zhǔn)確判斷當(dāng)前內(nèi)存使用率,一般是多次測(cè)量取平均值[13-14]。

(2)不良評(píng)分。設(shè)置參數(shù)badness 用于計(jì)算每個(gè)用戶(hù)的不良評(píng)分,最高分為100,最低分為0,根據(jù)不良評(píng)分大小來(lái)選擇相應(yīng)的懲罰措施。不良評(píng)分的計(jì)算公式:式中:ur是用戶(hù)使用的資源;Qr是每位用戶(hù)可使用的資源配額;Cr是設(shè)置的資源閾值。當(dāng)用戶(hù)使用的資源大于閾值,即ur≥Cr時(shí),不良評(píng)分ΔBr會(huì)隨著時(shí)間的增加而增加,當(dāng)增加到某一值時(shí),則啟動(dòng)懲罰措施;當(dāng)用戶(hù)使用的資源在閾值以下時(shí),即ur<Cr時(shí),不良評(píng)分ΔBr會(huì)逐漸減少,受到的限制也會(huì)逐步減少。α 和β為系數(shù),通過(guò)調(diào)節(jié)這兩個(gè)系數(shù),可以調(diào)節(jié)badness 變化快慢。最終的結(jié)果是,用戶(hù)可以在短暫時(shí)間內(nèi)運(yùn)行資源消耗超過(guò)其閾值的程序,而不會(huì)受到懲罰。但是,長(zhǎng)時(shí)間超過(guò)限定的閾值時(shí),不良評(píng)分會(huì)逐漸增大,當(dāng)達(dá)到一定的數(shù)值后就會(huì)啟動(dòng)懲罰措施來(lái)限制用戶(hù)可使用的資源。

(3)用戶(hù)狀態(tài)。狀態(tài)包含用戶(hù)所處的狀態(tài)、特殊性質(zhì)的狀態(tài)(如白名單)以及屬性狀態(tài)組。每個(gè)用戶(hù)在同一時(shí)間只能處于一種狀態(tài),稱(chēng)之為“當(dāng)前狀態(tài)”。用戶(hù)的另一種狀態(tài)是默認(rèn)狀態(tài),該狀態(tài)主要用于用戶(hù)從處罰狀態(tài)返回時(shí),系統(tǒng)通過(guò)默認(rèn)狀態(tài)對(duì)用戶(hù)限制資源。本文設(shè)計(jì)方法通過(guò)將用戶(hù)的uid或gid與order變量中遇到的第一個(gè)狀態(tài)進(jìn)行匹配,來(lái)確定用戶(hù)的默認(rèn)狀態(tài),若與order變量中定義的任何狀態(tài)都不匹配,則將用戶(hù)組設(shè)置為默認(rèn)狀態(tài)組即fallback_status。

(4)資源限制。當(dāng)用戶(hù)的不良評(píng)分達(dá)到懲罰值時(shí),就會(huì)啟動(dòng)相應(yīng)的懲罰措施來(lái)限制用戶(hù)可用資源。對(duì)CPU資源的限制是通過(guò)CPU層次結(jié)構(gòu)中的cpu.cfs_quota_us 文件來(lái)限制,當(dāng)用戶(hù)使用超過(guò)閾值(cpu_badness_threshold)時(shí),短時(shí)間內(nèi)將會(huì)被限制使用資源。對(duì)用戶(hù)內(nèi)存資源的限制是通過(guò)內(nèi)存層次結(jié)構(gòu)中的memory.limit_in_bytes 文件,當(dāng)用戶(hù)使用量超過(guò)閾值(mem_badness_threshold)時(shí),內(nèi)核會(huì)首先嘗試收回內(nèi)存,若無(wú)法實(shí)現(xiàn),則會(huì)清理掉Cgroups 中最大的任務(wù)[15]。

2 高性能計(jì)算集群上的實(shí)踐過(guò)程

系統(tǒng)總體工作流程如圖1 所示。用戶(hù)登錄集群后,系統(tǒng)首先判斷用戶(hù)的cpu.usage _ percpu 和memory.usage_in_bytes是否超過(guò)閾值,如果超過(guò)閾值,則根據(jù)用戶(hù)違規(guī)嚴(yán)重程度采取懲罰措施,一段時(shí)間未違規(guī),則相應(yīng)降低懲罰,逐步回歸正常狀態(tài)。接下來(lái)將詳細(xì)介紹用戶(hù)身份和狀態(tài)分類(lèi)、CPU 和內(nèi)存相關(guān)設(shè)置、懲罰級(jí)別分類(lèi)。

圖1 系統(tǒng)總體工作流程示意圖

首先,設(shè)置用戶(hù)身份和狀態(tài)。將用戶(hù)設(shè)置為管理員用戶(hù)和普通用戶(hù)兩種身份,管理員用戶(hù)加入白名單,可以任意使用登錄節(jié)點(diǎn)資源,不受限制。管理員名單目前只設(shè)置兩位,更多的賬號(hào)是普通用戶(hù)。將用戶(hù)狀態(tài)設(shè)置為正常狀態(tài)和懲罰狀態(tài),正常狀態(tài)即默認(rèn)狀態(tài),用戶(hù)在登錄節(jié)點(diǎn)上可以使用的資源是默認(rèn)值的百分百,并且允許短時(shí)間內(nèi)高負(fù)載運(yùn)行;當(dāng)用戶(hù)有違規(guī)行為時(shí),則進(jìn)入懲罰狀態(tài)。

其次,分類(lèi)設(shè)置系統(tǒng)資源。將正常用戶(hù)可使用的資源設(shè)置為1 核CPU,4 GB內(nèi)存,CPU閾值設(shè)置為cpu_badness_threshold=80%,內(nèi)存閾值mem_badness_threshild=50%,time_to_max_bad=5 min,time_to_min_bad=30 min,即當(dāng)用戶(hù)使用CPU超過(guò)80%或者內(nèi)存使用量超過(guò)50%,且持續(xù)時(shí)間超過(guò)5 min,則不良評(píng)分開(kāi)始增加,當(dāng)用戶(hù)的CPU和內(nèi)存使用率持續(xù)30 min均在閾值以下,不良評(píng)分則會(huì)逐步減少。以?xún)?nèi)存使用率為例,隨機(jī)統(tǒng)計(jì)了某位用戶(hù)一段時(shí)間內(nèi)資源使用率與不良評(píng)分的變化,如圖2 所示。

圖2 登錄節(jié)點(diǎn)上用戶(hù)資源使用率與不良評(píng)分變化

最后,設(shè)置懲罰措施。對(duì)于違規(guī)用戶(hù),采取3 層懲罰機(jī)制動(dòng)態(tài)限制用戶(hù)可用資源。不同級(jí)別的懲罰措施對(duì)應(yīng)的資源可用率和資源限制時(shí)間不同,如表1 所示。

表1 用戶(hù)狀態(tài)與其對(duì)應(yīng)的資源限制

3 結(jié)果分析

上海交通大學(xué)高性能計(jì)算集群登錄節(jié)點(diǎn)有3 臺(tái)主機(jī),操作系統(tǒng)均是CentOS 7.7,且操作系統(tǒng)帶有cgroups v1 的Systemd版本,依賴(lài)的軟件主要有Python 3、toml和matplotlib。研究人員在T2、T3 兩臺(tái)登錄節(jié)點(diǎn)主機(jī)上進(jìn)行了軟件部署和相關(guān)參數(shù)設(shè)置,T1 主機(jī)上保持原有狀態(tài)。

經(jīng)過(guò)6 個(gè)月的試運(yùn)行,登錄節(jié)點(diǎn)的T2、T3 主機(jī)資源平均使用率顯著下降,因用戶(hù)不合理行為導(dǎo)致節(jié)點(diǎn)掛機(jī)的情況減少至零。隨機(jī)統(tǒng)計(jì)了一段時(shí)間內(nèi)3 臺(tái)登錄節(jié)點(diǎn)資源使用率,如圖3 所示,T2、T3 主機(jī)上的內(nèi)存和CPU資源使用率始終在50%以下,T1 主機(jī)上的內(nèi)存和CPU資源使用率較高,平均在80%左右。

圖3 登錄節(jié)點(diǎn)上用戶(hù)可用資源限制前后使用率對(duì)比

4 結(jié)語(yǔ)

本文分析了登錄節(jié)點(diǎn)的意義及重要性,討論了上海交通大學(xué)高性能計(jì)算集群登錄節(jié)點(diǎn)存在的問(wèn)題。針對(duì)登錄節(jié)點(diǎn)負(fù)載過(guò)高的情況,在研究了其他HPC機(jī)構(gòu)的管理方式后,提出了一種基于Cgroups 控制組策略的可以動(dòng)態(tài)限制資源的方法。實(shí)際應(yīng)用結(jié)果表明,CPU和內(nèi)存使用率始終處于正常水平,登錄節(jié)點(diǎn)的穩(wěn)定性和可靠性得到了提高。同時(shí),本文提出的方法對(duì)其他機(jī)構(gòu)高性能計(jì)算集群的登錄節(jié)點(diǎn)管理也有一定的參考價(jià)值。

猜你喜歡
懲罰資源用戶(hù)
基礎(chǔ)教育資源展示
一樣的資源,不一樣的收獲
神的懲罰
小讀者(2020年2期)2020-03-12 10:34:06
資源回收
懲罰
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
關(guān)注用戶(hù)
關(guān)注用戶(hù)
關(guān)注用戶(hù)
真正的懲罰等
主站蜘蛛池模板: 国产 在线视频无码| 丰满人妻中出白浆| 人妻无码AⅤ中文字| 国产精品一老牛影视频| 欧美成人a∨视频免费观看| 国产成人综合亚洲网址| 成年人视频一区二区| 久久久久国产精品嫩草影院| 精品国产成人av免费| 无码有码中文字幕| 91探花国产综合在线精品| 国产成人乱无码视频| 国产91小视频| 婷婷色一二三区波多野衣| 最新加勒比隔壁人妻| 91口爆吞精国产对白第三集| 91精品伊人久久大香线蕉| 国产十八禁在线观看免费| 久久精品亚洲中文字幕乱码| 国产性爱网站| 欧美色综合网站| 国产精品开放后亚洲| 亚洲成人动漫在线| 三级国产在线观看| 国产成人精品高清不卡在线 | 色播五月婷婷| 国产自视频| 青草免费在线观看| lhav亚洲精品| 国产手机在线小视频免费观看| 欧美区日韩区| 亚洲一级毛片免费看| 成年人免费国产视频| 国产精品无码AV中文| 成人福利在线看| 中文字幕佐山爱一区二区免费| 九九久久99精品| 激情五月婷婷综合网| 婷婷亚洲综合五月天在线| 亚洲无线视频| 国产迷奸在线看| 国产综合精品一区二区| 中文字幕 欧美日韩| 国产精品第一区| 在线欧美日韩国产| 黄色片中文字幕| 日韩精品专区免费无码aⅴ | 精品视频免费在线| 综1合AV在线播放| 原味小视频在线www国产| 视频在线观看一区二区| 国产精品va免费视频| 欧洲av毛片| 国产男人天堂| 在线观看国产精品日本不卡网| 亚洲国模精品一区| 国产男人的天堂| 国产男女XX00免费观看| 亚洲国产日韩在线观看| 伊人丁香五月天久久综合| 国产亚洲欧美在线人成aaaa| 国产九九精品视频| 亚洲视频色图| 无码一区二区三区视频在线播放| 久久人体视频| 四虎国产精品永久一区| 999在线免费视频| 成色7777精品在线| 在线国产欧美| 亚洲Aⅴ无码专区在线观看q| 成人精品视频一区二区在线 | 少妇露出福利视频| 黄色污网站在线观看| 91精品国产一区| 精品视频91| 秋霞午夜国产精品成人片| 国产你懂得| 色婷婷色丁香| 午夜国产不卡在线观看视频| 亚洲色成人www在线观看| 99久久这里只精品麻豆| 国产免费一级精品视频|