1. 程式人生 > >Linux的企業-Cgconfig簡介和相關限制

Linux的企業-Cgconfig簡介和相關限制

cgconfig 簡介 相關限制

一.簡介

Cgroups是control groups的縮寫,是Linux內核提供的一種可以限制、記錄、隔離進程組(process groups)所使用的物理資源(如:cpu,memory,IO等等)的機制。最初由google的工程師提出,後來被整合進Linux內核。Cgroups也是LXC為實現虛擬化所使用的資源管理手段,可以說沒有cgroups就沒有LXC。

Cgroups最初的目標是為資源管理提供的一個統一的框架,既整合現有 的cpuset等子系統,也為未來開發新的子系統提供接口。現在的cgroups適用於多種應用場景,從單個進程的資源控制,到實現操作系統層次的虛擬化 (OS Level Virtualization)。Cgroups提供了以下功能:

1.限制進程組可以使用的資源數量(Resource limiting )。比如:memory子系統可以為進程組設定一個memory使用上限,一旦進程組使用的內存達到限額再申請內存,就會觸發OOM(out of memory)。

2.進程組的優先級控制(Prioritization )。比如:可以使用cpu子系統為某個進程組分配特定cpu share。

3.記錄進程組使用的資源數量(Accounting )。比如:可以使用cpuacct子系統記錄某個進程組使用的cpu時間

4.進程組隔離(Isolation)。比如:使用ns子系統可以使不同的進程組使用不同的namespace,以達到隔離的目的,不同的進程組有各自的進程、網絡、文件系統掛載空間。

5.進程組控制(Control)。比如:使用freezer子系統可以將進程組掛起和恢復。


二.cgconfig安裝啟動

技術分享


三.內存限制

技術分享


1.添加group x1,內存限制為256M

技術分享

技術分享


2.測試內存限制

註:必須在/dev/shm內存空間下寫入

正常情況下沒有限制,可以直接寫入,cached值為441

技術分享


使用group:x1策略寫入只能到395,剩下的寫入到交換分區45M

技術分享



添加交換分區內存限制

技術分享

技術分享


寫入300M內存直接禁止,交換分區也無法寫入

技術分享



四.cpu優先級限制

1.添加group:x2,cpu優先級為100

技術分享


2.測試:第一次正常測試,第二次使用group:x2策略測試

技術分享


可以看出優先級為100的進程1305後面執行



五.IO接口限制

1.添加group:x3,IO接口252設備限制讀取的100M

技術分享

技術分享


2.測試前安裝iotop檢測模塊

技術分享


第一次正常讀取,讀取速度為187M左右

技術分享

技術分享


第二次使用group:v3策略測試,速度為1M左右

技術分享

技術分享




六.cgconfig不同用戶的限制

此處使用內存為例

1.配置/etc/cgrules.conf規則文件,cgconfig和剛才配置一樣即可

技術分享


cgrules.conf規則文件需要填寫用戶 限制類型 限制策略,配置完重啟服務

技術分享

技術分享


2.測試

創建用戶westos,進入到/dev/shm內存寫入空間

技術分享

寫入300M內存,被限制

技術分享




Linux的企業-Cgconfig簡介和相關限制