iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0

在昨天我們介紹完 Namespace 這一個虛擬化技術的基本概念後,我們能大致了解到這種技術應用在容器的重要性。今天就讓我們來繼續探討另一個重要的容器技術,也就是CGroup(Control Groups)。

什麼是CGroups(Control Groups)?

CGroups(Control Groups)是一種在 Linux Kernal 中控制行程的系統資源使用(系統資源包含CPU、Memory等),以實現資源管理和隔離的機制。這種機制可以確保系統運行的各種行程能夠有效分配系統資源,同時保持系統的效能和穩定性。

CGroups的組成:

CGroups是由多個子系統(subsystems)所組成的,每個子系統負責控制和管理特定類型的資源。以下是一些常見的 CGroups 子系統以及其功能:

  1. cpu:這個子系統可以限制行程的 CPU 使用,確保某些行程不會過度占用 CPU 資源。

  2. memory:這個子系統又稱為 Memory Resource Controller,是用於限制行程的記憶體使用量,並提供檢視每個 CGroup 的實際記憶體使用情況。如果系統記憶體不足時,子系統會觸發 OOM(Out of Memory)事件,使系統終止某些行程以釋放記憶體資源,來確保系統的穩定性。

  3. blkio:這個子系統用於控制每個 CGroup 磁碟 IO 的資源使用,這些限制包括讀取操作(Read IOPS)、寫入操作(Write IOPS)、讀取帶寬(Read Bps)、寫入帶寬(Write Bps)等。

  4. devices:這個子系統又稱為 Device Whitelist Controller,是用於控制行程對設備的訪問權限,以提高系統的安全性和資源隔離性。

  5. cpuset:這個子系統用於管理和分配 CPU 資源給指定的 CGroups 或行程,以確保不同工作負載之間的資源分配,提升系統的穩定性。

CGroups(Control Groups)是一個重要的概念,在微服務中可以有效地進行資源管理和控制,確保容器或微服務在共享資源的同時保持良好的效能和穩定性。CGroups 提供了多個子系統,如同以上所述,每個子系統負責不同類型的資源管理,而通過使用這些子系統,我們可以更輕鬆地控制容器資源使用。

我們明天見~


上一篇
Day 18 Namespace 介紹
下一篇
Day 20 透過 Kubernetes 了解 Namespace 與 CGroups
系列文
帶著MBP在異世界探險的科技宅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言