日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cgroup限制oracle,Yarn 使用 Cgroup 实现任务资源限制

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cgroup限制oracle,Yarn 使用 Cgroup 实现任务资源限制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux CGroup 全稱是 Linux Control Group,是 Linux 內核提供的一個用來限制進程資源使用的功能,支持如 CPU, 內存,磁盤 IO 等資源的使用限制。用戶可以使用 CGroup 對單個進程或者一組進程進行精細化的資源限制,具體使用方式可以查看參考文檔。

目前, Yarn NodeManager 能夠使用 CGroup 來限制所有 containers 的資源使用,主要是 CPU 資源。如果不用 CGroup, 在 NM 端很難實現對 container 的 CPU 使用進行限制。默認狀態下, container 的 CPU 使用是沒有限制的,container 申請了 1 vcore ,實際上能夠使用所有的 CPU 資源。所以如果 NM 上分配了一個 vcore 申請較少實際上 CPU 使用極高的任務,常常會導致節點上運行的所有的任務都延時。

NM 運行時,可以通過 ContainersMonitor 線程監控 container 內存和 CPU 使用。對于 container 內存使用, 一旦發現其超出申請內存大小,就會立即發起 kill container 命令,回收 container 的資源。ContainersMonitor 雖然也支持 CPU 使用監控,但是 CPU 資源不像內存資源,其使用量的峰值是基本上可以確定的,在所有機器或者系統上都基本一致。CPU 受限于 CPU 硬件性能, 同一個任務在不同的機器上的 CPU 使用率可能差異巨大,所以不能發現 container CPU 使用超過申請大小就 kill container 。同時,由于 container 都是由子進程的方式啟動的, NM 也是很難通過直接控制 container 運行和暫停來調整其 CPU 使用率。因此,在沒有 CGroup 功能的情況下, NM 是很難直接限制 container 的 CPU 使用的。

所以接下來我們主要介紹 Yarn 如何啟用 CGroup 來限制 containers CPU 資源占用。

啟用

NM 啟用 CGroup 功能主要需要在 yarn-site.xml 里設置以下配置:

1. 啟用 LCE :

在 Nodemanager 中, CGroup 功能集成在 LinuxContainerExecutor 中,所以要使用 CGroup 功能,必須設置 container-executor 為 LinuxContainerExecutor. 同時需要配置 NM 的 Unix Group,這個是可執行的二進制文件 container-executor 用來做安全驗證的,需要與 container-executor.cfg 里面配置的一致。詳細配置可參見 Yarn ContainerExecutor 配置與使用。

yarn.nodemanager.container-executor.classorg.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutoryarn.nodemanager.linux-container-executor.grouphadoop

2. 啟用 CGroup :

LinuxContainerExecutor 并不會強制開啟 CGroup 功能, 如果想要開啟 CGroup 功能,必須設置 resource-handler-class 為 CGroupsLCEResourceHandler.

yarn.nodemanager.linux-container-executor.resources-handler.classorg.apache.hadoop.yarn.server.nodemanager.util.CgroupsLCEResourcesHandler

3. 配置 Yarn CGroup 目錄:

NM 通過 yarn.nodemanager.linux-container-executor.cgroups.hierarchy 配置所有 Yarn Containers 進程放置的 CGroup 目錄。

如果系統的 CGroup 未掛載和配置,可以在系統上手動掛載和配置和啟用 CGroup 功能,也可以通過設置 yarn.nodemanager.linux-container-executor.cgroups.mount 為 true,同時設置 CGroup 掛載路徑 yarn.nodemanager.linux-container-executor.cgroups.mount-path 來實現 NM 自動掛載 CGroup (不建議這樣用,問題挺多)。

如果系統的 CGroup 已經掛載且配置完成,而且 Yarn 用戶有 CGroup cpu 子目錄的寫入權限,NM 會在 cpu 目錄下創建 hadoop-yarn 目錄 ,如果該目錄已經存在,保證 yarn 用戶有寫入權限即可。

yarn.nodemanager.linux-container-executor.cgroups.hierarchy/hadoop-yarnyarn.nodemanager.linux-container-executor.cgroups.mountfalseyarn.nodemanager.linux-container-executor.cgroups.mount-path/sys/fs/cgroup

4. CPU 資源限制:

NM 主要使用兩個參數來限制 containers CPU 資源使用。

首先,使用 yarn.nodemanager.resource.percentage-physical-cpu-limit 來設置所有 containers 的總的 CPU 使用率占用總的 CPU 資源的百分比。比如設置為 60,則所有的 containers 的 CPU 使用總和在任何情況下都不會超過機器總體 CPU 資源的 60 %。

然后,使用 yarn.nodemanager.linux-container-executor.cgroups.strict-resource-usage 設置是否對 container 的 CPU 使用進行嚴格限制。如果設置為 true ,即便 NM 的 CPU 資源比較空閑, containers CPU 使用率也不能超過限制,這種配置下,可以嚴格限制 CPU 使用,保證每個 container 只能使用自己分配到的 CPU 資源。但是如果設置為 false ,container 可以在 NM 有空閑 CPU 資源時,超額使用 CPU,這種模式下,可以保證 NM 總體 CPU 使用率比較高,提升集群的計算性能和吞吐量,所以建議使用非嚴格的限制方式(實際通過 CGroup 的 cpu share 功能實現)。不論這個值怎么設置,所有 containers 總的 CPU 使用率都不會超過 cpu-limit 設置的值。

NM 會按照機器總的 CPU num* limit-percent 來計算 NM 總體可用的實際 CPU 資源,然后根據 NM 配置的 Vcore 數量來計算每個 Vcore 對應的實際 CPU 資源,再乘以 container 申請的 Vcore 數量計算 container 的實際可用的 CPU 資源。這里需要注意的是,在計算總體可用的 CPU 核數時,NM 默認使用的實際的物理核數,而一個物理核通常會對應多個邏輯核(單核多線程),而且我們默認的 CPU 核數通常都是邏輯核,所以我們需要設置 yarn.nodemanager.resource.count-logical-processors-as-cores 為 true 來指定使用邏輯核來計算 CPU 資源。

yarn.nodemanager.resource.percentage-physical-cpu-limit80yarn.nodemanager.linux-container-executor.cgroups.strict-resource-usagefalseyarn.nodemanager.resource.count-logical-processors-as-corestrue

注意事項

Linux 內核版本 3.10.0-327.el7.x86_64 上 Yarn 啟用 CGroup 功能后,會觸發內核 BUG,導致內核卡死,重啟,NM 掛掉,所有運行的任務失敗。所以如果需要啟用 CGroup 功能,絕對不能使用 3.10.0-327.el7.x86_64 版本內核。親測升級內核版本可解決該問題。

本文轉自:https://smarthanwang.github.io/2019/10/20/yarn-cgroup-usage/

作者:smarthan

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的cgroup限制oracle,Yarn 使用 Cgroup 实现任务资源限制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。