当前位置: 首页 > news >正文

cgroup 使用

  1. 验证系统使用 cgroup v2:

    $ mount | grep cgroup2
    cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
    
  2. 创建 cgroup:

    # 创建名为 limited_memory 的 cgroup
    sudo mkdir /sys/fs/cgroup/limited_memory
    
  3. 设置内存限制:

    # 限制内存用量为 2GB
    echo $((2 * 2 ** 30)) | sudo tee /sys/fs/cgroup/limited_memory/memory.max
    
  4. 将用户进程加入 cgroup:

    # 将 USER 的所有进程加入 cgroup
    for pid in $(pgrep -u USER); doecho $pid | sudo tee /sys/fs/cgroup/limited_memory/cgroup.procs
    done
    
  5. 验证配置:

    # 检查 cgroup 中的进程
    cat /sys/fs/cgroup/limited_memory/cgroup.procs
    

持久化

为了确保新进程也受到限制,可以在用户登录时自动将其加入到指定的 cgroup。这里通过创建一个用户服务来实现:

  1. 编辑单元文件:

    vim ~/.config/systemd/user/cgroup.service
    
    [Unit]
    Description=Move user session to cgroup[Service]
    ExecStart=/usr/bin/bash -c "echo $$ > /sys/fs/cgroup/limited_memory/cgroup.procs"[Install]
    WantedBy=default.target
    
  2. 重载单元文件:

    systemctl --user daemon-reload
    
  3. 启动服务:

    systemctl --user enable cgroup
    systemctl --user start cgroup
    
  4. 检查服务状态:

    systemctl --user status cgroup
    

反持久化

sudo rmdir /sys/fs/cgroup/limited_memory

参考:Controlling Process Resources with Linux Control Groups | iximiuz Labs

http://www.hskmm.com/?act=detail&tid=19568

相关文章:

  • 在Java中原码反码补码的区别
  • 苍穹外卖-day02(新增员工,员工分页查询,启用禁用员工账号,编辑员工,导入分类模块功能代码) - a
  • 问题
  • 智慧决策的透明化路径:空白金兰契架构下的悟空备案制研究
  • 使用 preact 渲染组件到任何元素
  • 《ZeroTier教程》03-客户端配置 zerotier-cli常用命令 桥接和路由配置示例
  • XDG和桌面环境
  • JAVA 语法基础课程动手动脑及课后实验问题整理文档
  • python垃圾回收
  • Arduino IDE 离线更新ESP-32 lib包
  • CUDA编程(CUDA_By_Example笔记)
  • K8S部署Openwebui 服务(Nvidia版)
  • 传统AI对话:悟空也辛苦(ai元人文)
  • 理解大语言模型中的 Token
  • 软件工程第一次团队作业
  • 实验1作业
  • 苍穹外卖-day01(软件开发整体介绍,苍穹外卖项目介绍,开发环境搭建,导入接口文档,Swagger) - a
  • 9.27动手动脑及课后实验
  • idea必备插件
  • 新学期每日总结(第6天)
  • 第六天
  • Combinatorics
  • 绘制倒杨辉三角形
  • ABC425 总结
  • 解决方案 | 无需安装任何插件,chrome如何快速搜索书签
  • 订单模块逐字稿
  • 课后作业小结
  • 课后3
  • 尝试决定
  • 竞赛第一步----进实验室