色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux namespace和cgroups簡介

馬哥Linux運維 ? 來源:高效運維 ? 作者:高效運維 ? 2022-03-16 09:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

先放結論,namespace 是用來做資源隔離, cgroup 是用來做資源限制。

Namespace

先說Namespace,虛擬技術基本要求就是資源隔離,簡單的說就是我獨占當前所有的資源。比如我在 8080 端口起 web 服務器,不用擔心其他進程端口占用。Linux 自帶 namespace 就能達到這個目的。namespace 從2002 開始開發到現在已經快20年的歷史了,到現在一共有6種 namespace:

  • mnt, 文件系統

  • pid, 進程

  • net, 網絡

  • ipc, 系統進程通信

  • uts, hostname

  • user, 用戶

可以通過三個系統調用的方式

  • clone,創建新的進程和新的namespace,新創建的進程 attach 到新創建的 namespace

  • unshare,不創建新的進程,創建新的 namespace 并把當前進程 attach 上

  • setns, attach 進程到已有的 namespace 上

shell 也提供了一個和系統調用同名的 unshare 命令可以非常簡單的創建 namespace。


	
sudo unshare --fork --pid --mount-proc bash

這樣創建了一個新的 PID namespace 并在里面運行了 bash。我們看看當前 namespace 的進程

aaaa3ca2-9331-11ec-952b-dac502259ad0.png

在這個 namespace 里,就只有兩個進程了。

Cgroups

cgroups 是 control groups 控制組的意思, 可以通過文件系統來訪問這些信息。一般cgroups 掛載在/sys/fs/cgroup

pYYBAGIxPQ2AUwnIAAgfQnTuA2o831.png

內核會讀取這些信息來調度資源分配給每個進程。比如我要限制進程占用CPU的時間。我用 Go 寫了一個模擬高 CPU 的代碼。

func IsPrime(value int) bool {    for i := 2; i <= int(math.Floor(float64(value)/2)); i++ {        if value%2 == 0 {            return false        }    }    return true}
func main() {    for i := 0; i < 999999999; i++ {        fmt.Printf("%v is prime: %v
", i, IsPrime(i))    }}

我創建兩個 CPU 的 cgroups

sudo cgcreate -g cpu:/cpulimitedsudo cgcreate -g cpu:/lesscpulimited

cpu.shares 是給內核為每個進程決定 CPU 計算資源,默認值是1024。給 cpulimited 設置為 512,lesscpulimited 保留默認值,那么在這兩個組的進程會以1 :2的比例占用CPU。


	
sudo cgset -r cpu.shares=512 cpulimited

aad8bef6-9331-11ec-952b-dac502259ad0.png

我們來驗證一下。

在 cpulimited 起一個進程


	
sudo cgexec -g cpu:cpulimited ./main > /dev/null &

可以看到獨占了 100% 的 CPU,在 cpulimited 再起一個進程

poYBAGIxPT6ARBspAAcpNjujwFQ011.png

兩個進程都在 cpulimited,各占50%的 CPU。在 lesscpulimited 起一個進程

poYBAGIxPYWARk-KAAdDiLAiFOk165.png


	
sudo cgexec -g cpu:lesscpulimited ./main > /dev/null &

pYYBAGIxPbKAGawfAAZkU0oF2lg946.png

兩個 cpulimited 進程的 CPU 之和 與 一個 lesscpulimited 進程的 CPU 差不多就是 1:2的關系。

原文標題:容器技術基石:Linux namespace 和 cgroups,運維了解一下

文章出處:【微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11517

    瀏覽量

    213979
  • 服務器
    +關注

    關注

    13

    文章

    9807

    瀏覽量

    88096
  • 資源
    +關注

    關注

    0

    文章

    59

    瀏覽量

    18186

原文標題:容器技術基石:Linux namespace 和 cgroups,運維了解一下

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文帶你搞懂Docker容器的核心基石Cgroups

    CgroupsLinux 系統內核提供的一種機制,這種機制可以根據需求將一些列系統任務機器子任務整合或分離到按資源劃分登記的不同組內,從而為系統資源管理提供一個的框架。簡單地說,cgroups
    發表于 11-24 09:54 ?710次閱讀

    嵌入式Linux的啟動流程簡介

    目錄嵌入式 Linux 啟動流程簡介啟動流程Bootloader 簡介市面上可見的 bootloader入式 Linux 啟動流程簡介對于一
    發表于 11-04 09:04

    嵌入式Linux開發簡介

    目錄1、嵌入式Linux開發簡介1.1嵌入式系統1.2嵌入式操作系統簡介1.2.1嵌入式操作系統的發展1.2.2幾種代表性嵌入式操作系統1.3嵌入式Linux
    發表于 12-14 08:24

    Linux簡介

    Linux簡介Linux是一款優秀的計算機操作系統LINUX是在UNIX基礎上開發,具有UNIX全部功能。1991年,芬蘭赫爾辛基大學的學生Linus Torvalds開發了
    發表于 12-16 06:00

    Linux源代碼簡介

     Linux源代碼簡介歡迎進入Linux的世界!隨著人們對開放源代碼軟件熱情的不斷高漲,Linux也受到了越來越多的關注。Linux
    發表于 02-10 13:54 ?78次下載

    Linux 2.6 中斷處理原理簡介

    Linux 2.6 中斷處理原理簡介 中斷描述符表(Interrupt Descriptor Table,IDT)是一個系統表,它與每一個中斷或異常向量相聯系,每一個向量在表中存放的是相應的中斷或
    發表于 02-05 10:52 ?840次閱讀

    第1章 Linux簡介和安裝

    有關于linux簡介
    發表于 12-20 22:16 ?0次下載

    一文讀懂如何選取 Linux 容器鏡像

    空間組件的獨立管理,這是是通過使用 cgroups 和 命名空間 (Namespace)等資源及進程隔離機制實現的。雖然 Solaris 和 BSD 也提供了與 Linux 容器技術類似的 抽象機制 ,但此份對比報告只聚焦于
    發表于 12-05 11:34 ?0次下載

    簡要介紹了操作系統虛擬化的概念,以及實現操作系統虛擬化的技術

    本文簡要介紹了操作系統級虛擬化的概念,并簡要闡述了實現操作系統虛擬化所用到的技術Namespacecgroups的原理及使用方法。
    的頭像 發表于 01-10 15:00 ?1.4w次閱讀
    簡要介紹了操作系統虛擬化的概念,以及實現操作系統虛擬化的技術

    什么是cgroups?有什么作用?

    cgroups (Control Groups) 是 Linux 內核提供的一種機制,這種機制可以根據需求把一系列系統任務及其子任務整合(或分隔)到按資源劃分等級的不同組內,從而為系統資源管理提供一個統一的框架。
    的頭像 發表于 08-27 11:35 ?1.1w次閱讀

    ADM1266 Linux API和Python庫簡介

    ADM1266 Linux API和Python庫簡介
    發表于 05-17 10:50 ?6次下載
    ADM1266 <b class='flag-5'>Linux</b> API和Python庫<b class='flag-5'>簡介</b>

    簡述Docker的底層技術原理之Namespace

    在同一個網絡命令空間下,那么他們看到的網絡信息(網卡、IP、路由等)是一樣的,可以通過localhost的方式互相訪問。常用的有6種namespace,在Linux 內核4.6之后又添加了Cgroup
    的頭像 發表于 07-21 09:55 ?1535次閱讀

    容器核心技術CgroupsNamespace

    而對于Docker等Linux容器項目來說,它們只需要在每個子系統下面,為每個容器創建一個控制組(即創建一個新目錄),然后在啟動容器進程之后,把這個進程的PID填寫到對應控制組的tasks文件中就可以了。
    的頭像 發表于 03-28 09:47 ?1310次閱讀

    Arch Linux RISC-V 端口及相關作品簡介

    Arch Linux RISC-V 端口及相關作品簡介 演講ppt分享
    發表于 07-17 16:34 ?6次下載

    ArmSoM-W3應用開發之安裝docker

    使用docker2.Rockchip平臺系統運行dockerDocker運行對內核配置有要求,需要kernel開啟cgroupsnamespace、netfilter、overlayfs
    的頭像 發表于 11-20 10:05 ?727次閱讀
    ArmSoM-W3應用開發之安裝docker
    主站蜘蛛池模板: 肉动漫无码无删减在线观看 | 成人无码精品1区2区3区免费看 | 在线视频久久只有精品第一日韩 | 俄罗斯极品hd | 久久精品无码人妻无码AV蜜臀 | 国产片MV在线观看 | 国产精品亚洲电影久久成人影院 | 一二三四中文字幕在线看 | 午夜福利体检 | 久久精品国产欧美 | 我的奶头被客人吸的又肿又红 | 香港论理午夜电影网 | 艳照门在线播放 | 四虎国产精品免费观看视频 | 解开白丝老师的短裙猛烈进入 | 糙汉顶弄抽插HHHH | 伊人综合在线影院 | 20岁中国男同志china1069 20岁αsrian男同志免费 | 色多多污版app下载网站 | 久久久免费观看 | 午夜爱情动作片P | 456亚洲人成在线播放网站 | 北条麻妃夫の友人196 | 无码人妻丰满熟妇区五十路久久 | 日韩亚洲人成在线 | 国产精品成人无码免费视频 | 阿力gv资源| 亚洲国产精品一区二区动图 | 天堂在线亚洲精品专区 | 性一交一无一伦一精一品 | 国产精品亚洲污污网站入口 | 中文字幕亚洲乱码熟女在线 | 男女免费观看在线爽爽爽视频 | 全是肉的高h短篇列车 | 精品一成人岛国片在线观看 | 最近中文字幕完整版高清 | 丰满五十六十老熟女HD60 | 三男强一女90分钟在线观看 | S货SAO死你BL大点声叫BL | 国产亚洲美女在线视频视频 | 亚洲日韩中文字幕日本有码 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品