• 欢迎访问蜷缩的蜗牛博客 蜷缩的蜗牛
  • 微信搜索: 蜷缩的蜗牛 | 联系站长 kbsonlong@qq.com
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

【转载】cgroups使用

Docker 蜷缩的蜗牛 1年前 (2017-07-21) 23次浏览 已收录 0个评论

cgroups 简介

控制组(cgroups)是一个 linux 内核特性,它允许你指定内核应该如何给一个进程组分配特定的资源。你可以用 cgroups 指定在某一个组中的进程使用多少 cpu 时间、系统内存、网络带宽、或者这些资源的组合。

cgroups 使用

# 下载一个可以模拟 cpu 高负载的工具,mathomatic 是质数生成器,会加大处理器的负荷

wget http://mathomatic.orgserve.de/mathomatic-16.0.5.tar.bz2 

tar xf mathomatic-16.0.5.tar.bz2

cd mathomatic-16.0.5/primes/

make && make install #  编译安装

# centos7 系统需要安装 libcgroup-tools 包,才有 cgroup 配置命令

yum install -y libcgroup-tools.x86_64

# 创建两个不同 cpu 资源分配的组

cgcreate -g cpu:/large # 具体命令使用 cgcreate -h

cgcreate -g cpu:/small

# cpu.shares 是 cpu 控制的一个属性,更多的属性

# 可以到/sys/fs/cgroup/cpu 目录下查看,默认值是 1024,值越大,能获得更多的 cpu 时间

cgset -r cpu.shares=512 small

 

 

# cgexec 启动一个 cgroup 任务

matho-primes 0 999999999 > /dev/null &  # 生成一个从 0 到 999999999 的质数列表

cgexec -g cpu:small /usr/local/bin/matho-primes 0 999999999 > /dev/null & # 后台运行

 

# 使用 top 命令查看发现 cpu 被 100%占用,因为是一个单独的进程,它使用尽可能多的 cpu

# cgroups 限制仅在两个或多个以上进程竞争 cpu 资源时起作用

 

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     

6726 root      20   0    9208   2540    488 R  99.9  0.0   0:34.47 matho-primes

cgexec -g cpu:large /usr/local/bin/matho-primes 0 9999999999 > /dev/null

cgexec -g cpu:small /usr/local/bin/matho-primes 0 9999999999 > /dev/null

cgexec -g cpu:small /usr/local/bin/matho-primes 0 9999999999 > /dev/null

 

# 在 small 组中起两个 matho-primes 进程,然后 top 观察 cpu 时间

# small 组两个 matho-primes 进程差不多共享 cpu,large 组的进程得到更多的 cpu 时间


蜷缩的蜗牛 , 版权所有丨如未注明 , 均为原创丨 转载请注明【转载】cgroups 使用
喜欢 (0)
[]
分享 (0)

您必须 登录 才能发表评论!