偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Docker核心原理深度剖析:Cgroups限制原理!

系統(tǒng) Linux
Cgroups 是 Linux 內(nèi)核提供的一種強(qiáng)大的機(jī)制,用于對(duì)一組進(jìn)程(process groups)進(jìn)行資源管理、和限制。

Docker是大型架構(gòu)的必備技能,也是云原生核心,下面我重點(diǎn)詳解Docker原理@mikechen

Docker核心原理:Cgroups

Cgroups 是 Linux 內(nèi)核提供的一種強(qiáng)大的機(jī)制,用于對(duì)一組進(jìn)程(process groups)進(jìn)行資源管理、和限制。

最新文章最新文章

對(duì)于 Docker 來(lái)說(shuō),Cgroups 是實(shí)現(xiàn)容器資源隔離和管理的關(guān)鍵基石。

沒(méi)有 Cgroups,Docker 就無(wú)法有效地限制容器的資源使用,也就無(wú)法保證多容器環(huán)境下的穩(wěn)定性和性能。

為什么需要Cgroups?

因?yàn)椋核械膽?yīng)用程序都運(yùn)行在同一個(gè)操作系統(tǒng)內(nèi)核之上,共享所有的系統(tǒng)資源(CPU、內(nèi)存、磁盤 I/O、網(wǎng)絡(luò)帶寬等)。

最新文章最新文章

如果某個(gè)應(yīng)用程序出現(xiàn)資源消耗過(guò)高的情況(例如,一個(gè)死循環(huán)占用了大量 CPU,或者一個(gè)內(nèi)存泄漏導(dǎo)致內(nèi)存耗盡)。

它可能會(huì)無(wú)限制地吞噬系統(tǒng)資源,導(dǎo)致其他應(yīng)用程序運(yùn)行緩慢甚至崩潰,最終可能拖垮整個(gè)宿主機(jī)。

雖然 Namespaces 提供了進(jìn)程、網(wǎng)絡(luò)等方面的隔離,但如果沒(méi)有 Cgroups 的資源限制。

一個(gè)惡意、或有缺陷的容器,仍然可能通過(guò)過(guò)度消耗資源來(lái)影響其他容器甚至宿主機(jī)。

因此,需要Cgroups來(lái)限制資源。

Cgroups的工作原理

Cgroups 的核心思想:是將任務(wù)(進(jìn)程)組織成層級(jí)的樹(shù)狀結(jié)構(gòu)。

最新文章最新文章

并在樹(shù)的每個(gè)節(jié)點(diǎn)上附加各種子系統(tǒng),從而實(shí)現(xiàn)對(duì)該節(jié)點(diǎn)下所有任務(wù)的資源控制和監(jiān)控。

對(duì)應(yīng)的控制組結(jié)構(gòu)如下:

/sys/fs/cgroup/
 ├── memory/docker/<container-id>/
 ├── cpu/docker/<container-id>/
 ├── blkio/docker/<container-id>/
 └──...

每個(gè)子系統(tǒng)下都有一份以容器 ID 命名的目錄,用來(lái)記錄資源配額與使用情況。

Cgroups 將系統(tǒng)資源劃分為不同的子系統(tǒng)(Subsystem),每個(gè)子系統(tǒng)控制一種資源,例如:

子系統(tǒng)名稱

控制資源

功能舉例

cpu

CPU 時(shí)間分配

限制容器最大 CPU 使用量

cpuset

指定 CPU 核

指定容器只能運(yùn)行在哪些 CPU 上

memory

內(nèi)存使用限制

限制容器內(nèi)存上限、防止 OOM

blkio

磁盤 IO 限制

控制容器讀寫(xiě)磁盤的帶寬和速度

net_cls

網(wǎng)絡(luò)帶寬管理

給容器打網(wǎng)絡(luò)流量標(biāo)簽,用于限速

devices

設(shè)備訪問(wèn)控制

限制容器訪問(wèn)特定硬件設(shè)備

舉幾個(gè)例子:

CPU 限制

通過(guò) cpu.shares 設(shè)置容器進(jìn)程的 CPU 時(shí)間片權(quán)重,或使用 cpu.cfs_quota_us 設(shè)置使用配額。

# 只允許使用一個(gè)核
 docker run --cpus=1...

表示:只允許使用一個(gè)核。

內(nèi)存 限制

通過(guò) memory.limit_in_bytes 設(shè)置容器可用的最大內(nèi)存,超過(guò)后觸發(fā) OOM。

docker run --memory=256m...

總之,Docker 之所以能做到“限制誰(shuí)、限制多少、怎么限制”。

核心依賴的就是 Linux Cgroups,它是實(shí)現(xiàn)資源隔離與彈性伸縮的基石技術(shù)。

責(zé)任編輯:武曉燕 來(lái)源: mikechen互聯(lián)網(wǎng)架構(gòu)
相關(guān)推薦

2024-07-11 08:17:00

2024-03-12 12:57:07

Redis主從架構(gòu)

2025-03-26 11:30:40

2010-07-12 21:44:51

HART協(xié)議

2012-02-08 10:37:42

Java反射

2024-04-12 14:04:17

機(jī)器學(xué)習(xí)DNN

2016-12-19 14:35:32

Spark Strea原理剖析數(shù)據(jù)

2010-03-18 11:16:24

全光交換機(jī)

2021-01-29 18:09:05

DockerCgroupsLinux

2020-11-02 09:35:04

ReactHook

2009-09-14 10:35:15

Linq內(nèi)部執(zhí)行原理

2020-09-16 10:31:58

SMTP網(wǎng)絡(luò)電子郵件

2023-04-11 08:00:56

Redis類型編碼

2020-12-03 08:14:45

Axios核心Promise

2025-03-25 10:29:52

2014-02-12 10:07:07

三層交換原理

2009-03-26 10:33:34

Oracle數(shù)據(jù)塊數(shù)據(jù)庫(kù)

2009-11-16 11:41:19

PHP上傳大文件

2011-05-18 09:47:17

LVSDR模式

2010-09-06 12:50:09

PPP鏈路
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)