### Cgroups
Cgroups全稱Control Groups,是Linux內核用于資源隔離的技術。目前Cgroups可以控制CPU、內存、磁盤訪問。
### 使用
Cgroups是在Linux 2.6.24合并到內核的,不過項目在不斷完善,3.8內核加入了對內存的控制(kmemcg)。
要使用Cgroups非常簡單,閱讀前建議看sysadmincasts的視頻,[https://sysadmincasts.com/episodes/14-introduction-to-linux-control-groups-cgroups。](https://sysadmincasts.com/episodes/14-introduction-to-linux-control-groups-cgroups。)
我們首先在文件系統創建Cgroups組,然后修改這個組的屬性,啟動進程時指定加入的Cgroups組,這樣進程相當于在一個受限的資源內運行了。
### 實現
Cgroups的實現也不是特別復雜。有一個特殊的數據結構記錄進程組的信息。
有人可能已經知道Cgroups是Docker容器技術的基礎,另一項技術也是大名鼎鼎的Namespaces。
- 前言
- 致謝
- 概述
- 使用代碼
- 使用Docker
- 進程基礎
- 進程是什么
- Hello World
- PID
- PPID
- 使用PID
- 進程名字
- 進程參數
- 輸入與輸出
- 并發與并行
- 進程越多越好
- 進程狀態
- 退出碼
- 進程資源
- 死鎖
- 活鎖
- POSIX
- Nohup
- 運行進程
- Go編程實例
- 衍生新進程
- 執行外部程序
- 復制進程
- 進程進階
- 文件鎖
- 孤兒進程
- 僵尸進程
- 守護進程
- 進程間通信
- 信號
- Linux系統調用
- 文件描述符
- Epoll
- 共享內存
- Copy On Write
- Cgroups
- Namespaces
- 項目實例Run
- 項目架構
- 代碼實現
- 注意事項
- 創建目錄權限
- 捕獲SIGKILL
- Sendfile系統調用
- 后記
- 參考書籍
- 項目學習
- 再次感謝