《systemd的cgroups模块--资源隔离》

安装完cgroups,系统会出现目录:/sys/fs/cgroup

  1. 创建cpu资源控制组,限制cpu使用率最大为50%
    cd /sys/fs/cgroup/cpu
    mkdir testcpu
    echo ‘10000’ > ./testcpu/cpu.cfs_period_us
    echo ‘5000’ > ./testcpu/cpu.cfs_quota_us
  2. 创建内存资源控制组,限制内存资源最大使用为100MB
    cd /sys/fs/cgroup/memory
    mkdir testmem
    echo ‘104857600’ > ./testmem/memory.limit_in_bytes
  3. 将进程加入到资源限制组
    cgexec -g cpu:testcpu ./test
    cgexec -g mem:testmem ./test
  4. 可执行进程示例程序
    g++ -o test test.cc --std=c++11 -lpthread
    (test是一个可执行文件,功能是起一个进程,该进程占用cpu和内存资源)

下面演示通过systemctl修改cgroup参数,以为cron.service添加cpu和内存限制为例:

  1. 编辑/lib/systemd/system/cron.service文件,在[service]增加
    CPUShares=600
    MemoryLimit=500M
  2. 重新加载配置文件并重启cron.service
    systemctl daemon-reload
    systemctl restart cron.service
  3. 查看/sys/fs/cgroup/cpu/system.slice/cron.service/cpu.shares和/sys/fs/cgroup/memory/system.slice/cron.serive/memory.limit_in_bytes发现已经配置上了
  4. 除了步骤1中编辑unit的配置文件,还可以用systemctl set-property命令来修改,这种方式也是永久有效的
    systemctl set-property cron.service CPUShares=700 MemoryLimit=102400
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值