萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 安裝與配置 Cgroups (Control Groups) 限制進程資源使用

Cgroups (Control Groups) 將進程分組並限制 CPU、記憶體、I/O 等物理資源,是容器技術 (Docker、LXC) 的核心基礎。本文說明安裝 cgroup-bin、掛載子系統、建立控制群組、寫入限制參數、將進程加入群組的完整操作流程。

核心概念

  • task:單一進程。
  • control group:依規則劃分的進程群組。
  • hierarchy:層級樹狀結構,子節點繼承父屬性。
  • subsystem:資源控制器 (cpu、memory、blkio、cpuset 等)。

查看可用子系統:

lssubsys -al
ls /sys/fs/cgroup/  # Ubuntu 掛載點

安裝工具

apt-get install cgroup-bin

以 memory 子系統為例限制記憶體

  1. 確認掛載點:cat /etc/cgconfig.conf → /sys/fs/cgroup/memory。
  2. 建立控制群組目錄:
    cd /sys/fs/cgroup/memory
    mkdir test

    目錄下自動產生 memory.limit_in_bytes、tasks 等控制檔。

  3. 設定記憶體上限 (例:100 MB):
    echo 104857600 > memory.limit_in_bytes
  4. 將當前 Shell 進程加入群組:
    echo $$ > tasks
  5. 驗證:在該 Shell 執行耗記憶體程式,超過限制將觸發 OOM Killer。
  6. 移除群組:rmdir test (需先移出所有進程)。

小結

Cgroups 以虛擬檔案系統介面暴露資源控制,mkdir 建群組、echo 寫限制、echo $$ > tasks 納入進程,極簡且強大,為容器化奠定基石。

copyright © 萬盛學電腦網 all rights reserved