CGROUP相關知識

2021-09-08 15:02:49 字數 2029 閱讀 4784

安裝

centos 6

yum install libcgroup
centos 7

yum install libcgroup-tools
預設情況下有幾個控制器可以進行限制,分別是

限制cpu負載

我寫了乙個指令碼來消耗cpu

count.sh

#!/bin/bash

n=0while true; do

n=$((n+1))

echo $n

done

執行命令

cmd=/root/count.sh

cgcreate -g cpu:/cpu50

cgset -r cpu.cfs_quota_us=50000 cpu50

cgexec -g cpu:cpu50 $cmd

可見 count.sh 的cpu負載一直維持在50%以內

root 18594 48.2 0.0 106152 1032 pts/0 r+ 09:53 0:11 /bin/bash /root/count.sh

root 18666 0.0 0.0 103304 808 pts/1 s+ 09:54 0:00 grep count.sh

此外也可以把已經在執行的程序加入cgroup限制,不需要重啟程式。

先執行

/root/count.sh
獲取程序號

root 18695 62.1 0.0 106152 1036 pts/0 r+ 09:57 0:04 /bin/bash ./count.sh

root 18697 0.0 0.0 103304 808 pts/1 s+ 09:57 0:00 grep count.sh

把程序加入控制器

cgclassify -g cpu:cpu50 18695
tips:

乙個資源組可以加多個程序,資源組限制的是加入該組的程序資源總和。比如上面例子,限制50%的負載,是指所有該組的程序總共消耗50%的負載,而不是每個資源能消耗50%的負載。
可以用 lscgroup 檢視配置的控制器

cpuset:/

cpu:/

cpu:/cpu50

cpuacct:/

memory:/

devices:/

freezer:/

net_cls:/

blkio:/

可以用命令 cgdelete 進行控制器的刪除。

請參考 

比較常用的有

各種控制器,除了使用 cg 系列命令可以修改,也可以直接修改對映到檔案系統的目錄。預設情況下,centos 6 的路徑是 /cgroup ,centos 7 的路徑是 /sys/fs/cgroup 。

配置檔案 /etc/cgconfig.conf 或者目錄 /etc/cgconfig.d/ 下可對對映的路徑進行配置,有興趣請自行開啟看看。

比如 centos 6 下的預設配置是

mount {

cpuset = /cgroup/cpuset;

cpu = /cgroup/cpu;

cpuacct = /cgroup/cpuacct;

memory = /cgroup/memory;

devices = /cgroup/devices;

freezer = /cgroup/freezer;

net_cls = /cgroup/net_cls;

blkio = /cgroup/blkio;

cgroup基本介紹

cgroup資源限制

cgroups介紹及安裝配置使用詳解

cgroup實踐-資源控制

how to use cgroup

DPDK(二) 準備知識2 cgroup

原文 一 簡介 linux cgroup全稱linux control group,是linux核心的乙個功能,用來限制,控制與分離乙個程序組群的資源 如cpu 記憶體 磁碟輸入輸出等 主要提供了如下功能 resource limitation 限制資源使用,比如記憶體使用上限以及檔案系統的快取限制...

cgroup從入門到懵圈 cgroup概念

從今天起,我要開始寫部落格了。先立個flag在這兒 兩周一篇。萬事開頭難,中間不容易,最後會放棄。請各位看官監督 雖然似乎肯定沒有人看 之前有接觸過cgroup,但東西都是同事在做 羨慕 理解不深。所以這個系列的文件,我假裝自己是cgroup菜雞 其實我不需要假裝 從零開始學習cgroup。cgro...

Cgroup框架分析

cgroups框架中涉及了大量的結構體,並且嵌入了很多list head以及hlist node等資料結構,目的是將這些資料結構鏈結在一起,無論從任何乙個結構體出發都可以很好的找到自己想要的目標結構體,因此核心中也出現了大量的短小精悍的inline funtion,這些function基本只有一兩句...