Linux的資源控制 cgroup

2021-09-01 07:09:13 字數 1048 閱讀 6342

1、cgroup

cgroup與程序類似,是分等級的。各個屬性繼承于父程序。使用者可以通過cgroup為其控制的任務分配資源,如:cpu、記憶體、網路頻寬等。cgroup包含了多個子系統,每個子系統代表乙個單一的資源。以redhat企業版6為例,共有9個子系統。分別為:

a) blkio:用於限制每個塊裝置的輸入輸出。如:磁碟、usb等

b) cpu:提供對cpu的訪問

c) cpuacct:生成cgroup任務的cpu資源報告

d) cpuset:對於多核cpu,該子系統為cgroup任務分配單獨的cpu和記憶體

e) devices:允許或者拒絕cgroup任務對裝置的訪問

f)  freezer:暫停和恢復cgroup任務

g) memory:提供對記憶體的訪問以及生成記憶體資源報告

h) net-cls:提供對網路頻寬的訪問

i)  ns:命名空間子系統

2、使用cgroup

a) 啟動與停止cgroup服務

i.       /etc/init.d/cgconfig start

ii.      /etc/init.d/cgconfig stop

b) 將cgroup服務設定為系統服務

i.       chkconfig cgconfig on

c) 配置cgroup

cgroup的配置檔案cgconfig.conf主要包含了兩個主要型別:mount和group。

i.       mount

mount是指建立以及掛載那些層次為虛擬檔案系統,並附上子系統的層次結構。如:

mount

配置完成後,可通過lssubsys命令來顯示配置好的子系統。

lssubsys –am

通過lscgroup命令顯示所有的cgroup

lscgroup

d) 自定義乙個cgroup

使用cgcreate命令建立乙個cgroup

cgcreate -g cpu,net_cls:/test-subgroup

e) 刪除乙個cgroup

cgdelete

Docker 資源控制

cpu限額 block io頻寬限額 docker run it m 200m memory swap 300m progrium stress vm 1 vm bytes 280m vm 1 啟動1個記憶體工作執行緒 vim bytes 280m 每個執行緒分配280mb記憶體 如果超過 vm b...

Docker 資源配額控制

啟動docker 容器時,指定 cpu,記憶體,硬碟效能等的硬體資源使用份額。docker 通過cgroup 來控制容器使用的資源配額,包括 cpu 記憶體 磁碟三大方面,基本覆蓋了常見的資源配額和使用量控制。cgroup 概述 cgroup 是control groups 的縮寫,是 linux ...

控制 Memory 和 CPU 資源的使用

resource governor的出現,解決了在一台sql server例項上,管理多使用者工作負載和資源隔離的需求,它允許管理員限制系統處理requsts時所耗費的cpu 和 memory資源的數量,在一定程度上,限制和隔離了runaway查詢。對於sql server 2012,使用者能夠基於...