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

一種高性能計算集群登錄節點資源限制方法

2021-05-29 11:56:04池成悅韋建文周子豪
實驗室研究與探索 2021年4期
關鍵詞:懲罰資源用戶

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

(上海交通大學網絡信息中心,上海 200240)

0 引言

近年來,隨著高等教育經費投入的增加以及計算資源需求的不斷增長,國內外很多高校和科研機構紛紛建設了高性能計算集群[1-3]。上海交通大學于2013年建成并投入使用高性能計算集群。經過多年的發展,目前集群算力已達到2.1PFLOPS,科研用戶數逐漸增多,日均服務機時直線上升,科研成果不斷創新高[4-7]。

集群和用戶規模的不斷擴大增加了集群登錄節點的負載以及管理上的難度[8]。集群登錄節點屬于共享資源,允許用戶進行一些簡單不耗資源的操作。但是,不同用戶對集群的使用操作以及相關規章制度的了解存在著一定的差異。有些用戶由于剛剛接觸高性能計算,對集群認知比較有限,經常會直接在登錄節點運行耗費資源的任務,導致登錄節點長時間負載過高[9]。隨著高性能計算集群的用戶數量逐漸增加,對集群自動化需求越來越高。因此上海交通大學高性能計算集群急需一種自動、實時的監測技術來調節登錄節點資源使用[10]。

國外幾個HPC中心曾嘗試使用cgroup 對共享資源進行限制。由印第安納大學編寫的“cgroup_py”腳本,可以起到限制用戶資源的作用,但該腳本與CentOS 7 系統或基于Systemd 的系統不兼容;由美國普渡大學Maves和John 編寫的“cgroups_py”腳本,可以對給定用戶的Systemd user-$ UID.slice 資源進行限制,該方法基于簡單的閾值法,只能起到靜態的限制作用,可擴展性不強。猶他大學Dylan、Robben 等在基于Cgroups和Systemd理論基礎上,提出了一種可以對共享資源進行監測的方法Arbiter2,該方法不僅可以監視用戶CPU和內存使用率,還可以強制執行默認資源限制、懲罰消耗共享資源過多的用戶。

本文結合上海交通大學高性能計算集群的實際運行情況,在基于Arbiter2 的實現原理上,從資源和時間兩個維度限制超出閾值的用戶,并設計了多層懲罰機制,動態調整用戶可用資源。實際應用結果表明,登錄節點上用戶違規次數大幅降低,資源利用率始終處于正常水平。

1 關鍵技術及實現原理

1.1 關鍵技術Cgroups和Systemd

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

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

1.2 實現原理

(1)監測資源使用率。為了收集登錄節點用戶資源使用信息,需要從Cgroups 層次結構/sys/fs/cgroup中提取用戶CPU 和內存的使用率。當用戶登錄集群時,會在每個用戶的控制器下創建一個slice 文件,用于記錄用戶資源使用信息,CPU 控制器下的slice 位于/sys/fs/cgroup/cpu/user.slice/user-#UID.slice,內存控制器的slice 位于在/sys/fs/cgroup/mem/user.slice/user-#UID.slice。cpu.usage_percpu 用于記錄CPU 資源使用率,但是該使用率是指用戶自建立cgroups以來的CPU使用率,可通過提取時鐘頻率的差異來表示當前CPU使用率。memory.usage_in_bytes 用于內存使用率,為了準確判斷當前內存使用率,一般是多次測量取平均值[13-14]。

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

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

(4)資源限制。當用戶的不良評分達到懲罰值時,就會啟動相應的懲罰措施來限制用戶可用資源。對CPU資源的限制是通過CPU層次結構中的cpu.cfs_quota_us 文件來限制,當用戶使用超過閾值(cpu_badness_threshold)時,短時間內將會被限制使用資源。對用戶內存資源的限制是通過內存層次結構中的memory.limit_in_bytes 文件,當用戶使用量超過閾值(mem_badness_threshold)時,內核會首先嘗試收回內存,若無法實現,則會清理掉Cgroups 中最大的任務[15]。

2 高性能計算集群上的實踐過程

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

圖1 系統總體工作流程示意圖

首先,設置用戶身份和狀態。將用戶設置為管理員用戶和普通用戶兩種身份,管理員用戶加入白名單,可以任意使用登錄節點資源,不受限制。管理員名單目前只設置兩位,更多的賬號是普通用戶。將用戶狀態設置為正常狀態和懲罰狀態,正常狀態即默認狀態,用戶在登錄節點上可以使用的資源是默認值的百分百,并且允許短時間內高負載運行;當用戶有違規行為時,則進入懲罰狀態。

其次,分類設置系統資源。將正常用戶可使用的資源設置為1 核CPU,4 GB內存,CPU閾值設置為cpu_badness_threshold=80%,內存閾值mem_badness_threshild=50%,time_to_max_bad=5 min,time_to_min_bad=30 min,即當用戶使用CPU超過80%或者內存使用量超過50%,且持續時間超過5 min,則不良評分開始增加,當用戶的CPU和內存使用率持續30 min均在閾值以下,不良評分則會逐步減少。以內存使用率為例,隨機統計了某位用戶一段時間內資源使用率與不良評分的變化,如圖2 所示。

圖2 登錄節點上用戶資源使用率與不良評分變化

最后,設置懲罰措施。對于違規用戶,采取3 層懲罰機制動態限制用戶可用資源。不同級別的懲罰措施對應的資源可用率和資源限制時間不同,如表1 所示。

表1 用戶狀態與其對應的資源限制

3 結果分析

上海交通大學高性能計算集群登錄節點有3 臺主機,操作系統均是CentOS 7.7,且操作系統帶有cgroups v1 的Systemd版本,依賴的軟件主要有Python 3、toml和matplotlib。研究人員在T2、T3 兩臺登錄節點主機上進行了軟件部署和相關參數設置,T1 主機上保持原有狀態。

經過6 個月的試運行,登錄節點的T2、T3 主機資源平均使用率顯著下降,因用戶不合理行為導致節點掛機的情況減少至零。隨機統計了一段時間內3 臺登錄節點資源使用率,如圖3 所示,T2、T3 主機上的內存和CPU資源使用率始終在50%以下,T1 主機上的內存和CPU資源使用率較高,平均在80%左右。

圖3 登錄節點上用戶可用資源限制前后使用率對比

4 結語

本文分析了登錄節點的意義及重要性,討論了上海交通大學高性能計算集群登錄節點存在的問題。針對登錄節點負載過高的情況,在研究了其他HPC機構的管理方式后,提出了一種基于Cgroups 控制組策略的可以動態限制資源的方法。實際應用結果表明,CPU和內存使用率始終處于正常水平,登錄節點的穩定性和可靠性得到了提高。同時,本文提出的方法對其他機構高性能計算集群的登錄節點管理也有一定的參考價值。

猜你喜歡
懲罰資源用戶
基礎教育資源展示
一樣的資源,不一樣的收獲
神的懲罰
小讀者(2020年2期)2020-03-12 10:34:06
資源回收
懲罰
趣味(語文)(2018年1期)2018-05-25 03:09:58
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
真正的懲罰等
主站蜘蛛池模板: av在线无码浏览| 米奇精品一区二区三区| 91福利免费| 国产成人精品在线| 成人在线第一页| 久久香蕉国产线看观看精品蕉| 深爱婷婷激情网| 国产肉感大码AV无码| 免费毛片全部不收费的| 国产精品尤物铁牛tv| 亚洲电影天堂在线国语对白| 午夜福利网址| 中文字幕在线观看日本| 成人噜噜噜视频在线观看| 激情综合婷婷丁香五月尤物| 欧美综合在线观看| 高清亚洲欧美在线看| 亚洲精品国产成人7777| 欧美日韩在线亚洲国产人| 欧美日韩在线观看一区二区三区| 最新亚洲人成无码网站欣赏网 | 一级一级特黄女人精品毛片| 91福利片| 波多野结衣一区二区三区四区| 欧美一区二区三区国产精品| 免费毛片a| 99视频精品在线观看| 97国产在线观看| 午夜日韩久久影院| 精品自窥自偷在线看| 在线视频亚洲色图| 色天天综合久久久久综合片| 国产一级毛片yw| 伊在人亚洲香蕉精品播放| 麻豆国产在线观看一区二区| 国产精品成人久久| 亚洲精品日产AⅤ| 亚洲天堂精品在线| 在线观看无码a∨| 国产成年女人特黄特色大片免费| 国内老司机精品视频在线播出| 91福利在线看| 国产嫖妓91东北老熟女久久一| 大香网伊人久久综合网2020| 亚洲A∨无码精品午夜在线观看| 日韩人妻无码制服丝袜视频| 国产97公开成人免费视频| 欧美无遮挡国产欧美另类| 19国产精品麻豆免费观看| 色婷婷亚洲综合五月| 19国产精品麻豆免费观看| 中文字幕永久视频| 美女国产在线| 亚洲中字无码AV电影在线观看| 国产精品毛片一区视频播| 蝌蚪国产精品视频第一页| 任我操在线视频| 国产一区亚洲一区| 国产亚洲视频免费播放| 国产精品99久久久| 五月激情综合网| 色哟哟国产成人精品| 久久99国产综合精品1| hezyo加勒比一区二区三区| 91九色国产porny| 福利小视频在线播放| 亚洲成人在线免费观看| 免费无码AV片在线观看中文| 欧美三級片黃色三級片黃色1| 国产成人精品视频一区二区电影| 国产精品hd在线播放| 精品国产欧美精品v| 亚洲一区二区日韩欧美gif| 少妇精品在线| 国产乱人视频免费观看| 香蕉网久久| 小说区 亚洲 自拍 另类| 欧美精品不卡| 久久午夜影院| 亚洲制服丝袜第一页| 天天综合亚洲| 波多野吉衣一区二区三区av|