在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

容器核心技術Cgroups和Namespace

阿銘linux ? 來源:阿銘linux ? 2023-03-28 09:47 ? 次閱讀

| 什么是Cgroups

簡單一句話描述Cgroups:Cgroups是Linux內(nèi)核提供的一種可以限制單個進程或者多個進程所使用資源的機制,可以對 cpu,內(nèi)存等資源實現(xiàn)精細化的控制。
Cgroups全稱是Control Groups,Cgroup為每種可以控制的資源都定義了一個子系統(tǒng)。它的子系統(tǒng)有:

cpu子系統(tǒng):限制進程的cpu使用率;

cpuacct子系統(tǒng):統(tǒng)計Cgroups中進程cpu使用報告;

cpuset子系統(tǒng):為Cgroups中的進程分配單獨的cpu節(jié)點或者內(nèi)存節(jié)點;

memory子系統(tǒng):限制進程的memory使用量;

blkio子系統(tǒng):限制進程的塊設備io;

devices子系統(tǒng):控制進程能夠訪問某些設備;

net_cls子系統(tǒng):標記cgroups中進程的網(wǎng)絡數(shù)據(jù)包,然后可以使用tc模塊(traffic control)對數(shù)據(jù)包進行控制;

freezer子系統(tǒng):掛起或者恢復cgroups中的進程;



其它的具體可以通過這個命令查看:

ls /sys/fs/cgroup/


| 理解Cgroups如何限制資源
在cpu子系統(tǒng)下創(chuàng)建目錄
cd /sys/fs/cgroup/cpu


mkdir container


ls container #下面會自動生成諸多文件,這些文件就是資源限制文件


cgroup.clone_children  

cpuacct.usage         

cpuacct.usage_percpu_sys   

cpuacct.usage_user  

cpu.rt_period_us   

cpu.stat


cgroup.procs           

cpuacct.usage_all     

cpuacct.usage_percpu_user  

cpu.cfs_period_us   

cpu.rt_runtime_us  

notify_on_release


cpuacct.stat           

cpuacct.usage_percpu  

cpuacct.usage_sys          

cpu.cfs_quota_us    

cpu.shares         

tasks
執(zhí)行一個耗費cpu資源的進程
while : ; do : ; done &  #這樣會做一個死循環(huán)進程,會導致cpu達到100%




[1] 39963


查看quota_us和period_us
[root@localhost container]# cat cpu.cfs_quota_us  ##-1表示未做任何限制


-1 


[root@localhost container]# cat cpu.cfs_period_us  ##這里的100000為us,也就是100ms


100000


兩個值組合在一起,就達到了一個限制的作用,修改上面兩個值
echo 30000 > cpu.cfs_quota_us  ##改為30ms,意思是100ms內(nèi),將cpu的限額最多給到30ms,也就是30%


再將上面的死循環(huán)進程id,做一下限制
echo  39963 > tasks


再次用top查看cpu使用率,會發(fā)現(xiàn)最終會使用30%,這就是Cgoups的限制。

| 總結Cgroups

Linux Cgroups的設計還是比較易用的,簡單粗暴地理解呢,它就是一個子系統(tǒng)目錄加上一組資源限制文件的組合。

而對于Docker等Linux容器項目來說,它們只需要在每個子系統(tǒng)下面,為每個容器創(chuàng)建一個控制組(即創(chuàng)建一個新目錄),然后在啟動容器進程之后,把這個進程的PID填寫到對應控制組的tasks文件中就可以了。

而至于在這些控制組下面的資源文件里填上什么值,就靠用戶啟動容器時的參數(shù)指定了。

| 什么是Namespace

Namespace(命名空間)是一種隔離機制,用于將全局系統(tǒng)資源劃分為多個獨立的邏輯部分,以便不同的進程或應用程序之間能夠使用不同的資源名稱或標識符,避免沖突和混淆。

Linux的Namespace是一種由內(nèi)核直接提供的全局資源封裝,它是內(nèi)核針對進程設計的訪問隔離機制。

進程在一個獨立的 Linux Namespace中會認為它擁有這臺 Linux 主機上的一切資源,不僅文件系統(tǒng)是獨立的,還有著獨立的 PID 編號(比如擁有自己的 0 號進程,即系統(tǒng)初始化的進程)、UID/GID 編號(比如擁有自己獨立的 root 用戶)、網(wǎng)絡(比如完全獨立的 IP 地址、網(wǎng)絡棧、防火墻等設置),等等。

| Namespace分類

事實上,Linux的Namespace設計最早只針對文件系統(tǒng),但到了后來,要求系統(tǒng)隔離其他訪問操作的呼聲就愈發(fā)強烈,從 2006 年起,內(nèi)核陸續(xù)添加了UTS、IPC等命名空間隔離,后續(xù)Linux命名空間支持了以下八種資源的隔離(內(nèi)核的官網(wǎng)Kernel.org上仍然只列出了前六種,從 Linux 的 Man 命令能查到全部八種):


命名空間 說明 內(nèi)核版本
Mount 文件系統(tǒng)隔離 2.4.19
UTS 主機的Hostname、Domain names 2.6.19
IPC 隔離進程間通信的渠道 2.6.19
PID 隔離進程編號,無法看到其它命名空間的PID 2.6.24
Network 隔離網(wǎng)絡資源,如網(wǎng)卡、網(wǎng)絡棧、IP地址、端口 2.6.29
User 隔離用戶和用戶組 3.8
Cgroup 隔離Cgroup信息,進程有自己的Cgroup的根目錄視圖 4.6
Time 隔離系統(tǒng)時間 5.6




容器技術的產(chǎn)生就是因為Linux的Namespace的存在,在Linux系統(tǒng)里要想運行多個容器,那么容器與宿主機之間、容器與容器之間必須要做到相互隔離,它們會認為自己擁有了整個硬件以及軟件資源。可以說如果沒有Namespace技術,就不會有容器技術。

審核編輯 :李倩

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

    關注

    87

    文章

    11350

    瀏覽量

    210460
  • 容器
    +關注

    關注

    0

    文章

    499

    瀏覽量

    22128

原文標題:容器核心技術Cgroups和Namespace

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

    可以限制、記錄任務組所使用的物理組員(比如 CPU、Memory、IO等),為容器實現(xiàn)虛擬化提供了基本保證,是構建 Docker 等一些列虛擬化管理工具的基石。今天我們就來詳細介紹一下 cgroups 相關的內(nèi)容。
    發(fā)表于 11-24 09:54 ?626次閱讀

    最新視頻編碼標準H.264及其核心技術

    最新視頻編碼標準H.264及其核心技術H.264是ITU-T和ISO聯(lián)合研究制定的編碼效率高、網(wǎng)絡適應性強的最新數(shù)字視頻編碼國際標準.H.264是面向視頻電話、視頻會議等實際應用的標準,它能以低
    發(fā)表于 06-25 11:42

    佳靈變頻器故障與維修核心技術

    佳靈變頻器故障與維修核心技術
    發(fā)表于 08-05 20:55

    藍牙核心技術概述

    藍牙核心技術概述(一):藍牙概述藍牙核心技術概述(二):藍牙使用場景藍牙核心技術概述(三): 藍牙協(xié)議規(guī)范(射頻、基帶鏈路控制、鏈路管理)藍牙核心技術概述(四):藍牙協(xié)議規(guī)范(HCI、
    發(fā)表于 11-24 16:06

    【原創(chuàng)】Android視頻直播核心技術

    【原創(chuàng)】Android視頻直播核心技術回復即可獲取下載鏈接[hide=d15]鏈接:http://pan.baidu.com/s/1cC6wbW 密碼:smj8 學習群:150923287 [/hide]
    發(fā)表于 07-26 17:43

    31歲無核心技術,迷茫

    再有3個月31整,再有9月就到2019了。回首發(fā)現(xiàn),無核心技術,身價也越來越編制,職位上升無望,改怎么辦?同齡的你,有什么高見!!!期待您的回復。
    發(fā)表于 03-27 11:39

    云計算的五大核心技術

    云計算的核心技術有哪些?大數(shù)據(jù)云計算學習路線
    發(fā)表于 06-28 09:41

    五大核心技術如何實現(xiàn)物聯(lián)網(wǎng)

    以下是實現(xiàn)物聯(lián)網(wǎng)的五大核心技術核心技術之感知層:傳感器技術、射頻識別技術、二維碼技術、微機電系統(tǒng)1.傳感器
    發(fā)表于 07-25 06:38

    Small Cell是什么?Small Cell的核心技術包括哪些?

    Small Cell是什么?Small Cell的核心技術包括哪些?
    發(fā)表于 05-24 06:11

    無線遠程監(jiān)控系統(tǒng)主要包括哪些核心技術

    無線遠程監(jiān)控系統(tǒng)主要包括哪些核心技術
    發(fā)表于 05-25 06:45

    H.264與AVS視頻標準核心技術有什么不同?

    H.264與AVS視頻標準核心技術有什么不同?
    發(fā)表于 06-03 06:57

    視頻標準核心技術對比分析哪個好

    視頻標準核心技術對比分析哪個好
    發(fā)表于 06-07 06:12

    單片機應用的核心技術是什么?

    單片機應用的核心技術是什么?單片機神奇的工作原理是什么?匯編語言很難學怎么辦?
    發(fā)表于 11-02 06:17

    Arm Cortex-A65核心技術參考手冊

    Arm Cortex-A65核心技術參考手冊
    發(fā)表于 08-02 07:38

    Linux namespacecgroups簡介

    先放結論,namespace 是用來做資源隔離, cgroup 是用來做資源限制。
    的頭像 發(fā)表于 03-16 09:03 ?1815次閱讀
    主站蜘蛛池模板: 亚洲亚洲人成网站在线观看 | 年轻的护士3在线观看 | 一级视频在线播放 | 国产精品丝袜xxxxxxx | 国产精品波多野结衣 | 国产一区二区精品 | 9久久99久久久精品齐齐综合色圆 | 国产美女视频黄a视频免费全过程 | 久久国内视频 | 一区二区三区四区在线观看视频 | 丁香伊人五月综合激激激 | 日韩成人毛片高清视频免费看 | 一级毛片免费全部播放完整 | 欧美成人鲁丝片在线观看 | 欧美精品网站 | 天天干夜夜谢 | 国产午夜在线观看视频 | 手机在线精品视频 | 天天做天天爱天天综合网 | 美女扒开尿口让男人30视频 | 视频在线观看一区二区三区 | 四虎影院在线免费观看 | 亚洲男人天堂手机版 | 亚洲午夜精品一区二区 | 国产美女主播在线 | 男女网站在线观看 | 91视频观看 | 国产一区二区在线不卡 | 亚欧色视频在线观看免费 | 夜夜想夜夜爽天天爱天天摸 | 久久老色鬼天天综合网观看 | 免费在线看视频 | 婷婷丁香五月中文字幕 | 天堂在线天堂最新版在线www | 黄色一级毛片在线观看 | 日日噜噜夜夜狠狠tv视频免费 | 涩综合| 欧美一级特黄啪啪片免费看 | 狠狠色噜狠狠狠狠色综合久 | 欧美电影一区二区三区 | 最刺激黄a大片免费观看下截 |