使用cgroup限制资源方法

news/2024/10/8 11:37:02/文章来源:https://www.cnblogs.com/yixiaogo/p/18451344
使用cgroup(控制组)限制进程占用内存方法
    1:创建cgroup目录:
    首先,需要在/sys/fs/cgroup/memory目录下创建一个子目录
    sudo mkdir /sys/fs/cgroup/memory/myapp    // sudo mkdir /sys/fs/cgroup/cpu/myapp,限制CPU方法
 
    2:设置内存限制:
    sudo sh -c 'echo 50M > /sys/fs/cgroup/memory/myapp/memory.limit_in_bytesmemory.soft_limit_in_bytes'
    // 限制CPU方法:sudo sh -c 'echo 50000 > /sys/fs/cgroup/cpu/myapp/cpu.cfs_quota_us'  
    // 限制CPU方法:sudo sh -c 'echo 100000 > /sys/fs/cgroup/cpu/myapp/cpu.rt_period_us'
    // 其中,cpu.cfs_quota_us表示CPU时间配额(单位为微秒),cpu.rt_period_us表示CPU周期(单位为微秒),这里将CPU时间配额设置为50000微秒,CPU时间周期设置为100000微秒,表示CPU使用率限制为50%。
 
    3:添加进程到cgroup:
    echo >/sys/fs/cgroup/memory/myapp/cgroup.procs   
// 这一项限制各个资源处理方法都一样, 将pid写入cgroup.procs,则该pid所在的线程组及该pid的子进程等都会自动加入到cgroup中。将pid写入tasks,则只限制该pid。
 
    4:禁用OOM:
    echo 1 >/sys/fs/cgroup/memory/myapp/memory.oom_control   
//默认当进程超过设置的内存上限后,会直接通过oom kill掉进程,这里通过禁用oom功能,让进程内存超限后不直接kill掉,而是一直等待可用内存,直到满足自身需求
 
 
. 使用cgroup(控制组)限制进程磁盘I/O方法
    1:创建cgroup目录:
    首先,需要在/sys/fs/cgroup/blkio目录下创建一个子目录
    sudo mkdir /sys/fs/cgroup/blkio/myapp
 
    2:设置 I/O 限制:
        限制设备的读取带宽(字节/秒)
        sudo sh -c 'echo 8:16 1048576'  > /sys/fs/cgroup/blkio/myapp/blkio.throttle.read_bps_device  //限制磁盘读取速度为:为1M/S
        限制设备的写入带宽(字节/秒)
        sudo sh -c 'echo 8:16 1048576'  > /sys/fs/cgroup/blkio/myapp/blkio.throttle.write_bps_device //限制磁盘写入速度为:为1M/S
        blkio.throttle.read_iops_device:限制设备的读取 IOPS(设备每秒钟可以执行的读/写请求数上限)//单位为 bios/second
        blkio.throttle.write_iops_device:限制设备的写入 IOPS(设备每秒钟可以执行的读/写请求数上限)//单位为 bios/second
 
    3:添加进程到cgroup:
    echo >/sys/fs/cgroup/memory/myapp/cgroup.procs
 
 
. 使用cgroup(控制组)限制网络带宽的方法
    1:创建cgroup目录:
    首先,需要在/sys/fs/cgroup/net_cls目录下创建一个子目录 
mkdir /sys/fs/cgroup/net_cls
    mount -t cgroup -onet_cls net_cls /sys/fs/cgroup/net_cls
    mkdir /sys/fs/cgroup/net_cls/0
 
    2:设置 cgroup 的 classid,用于标识网络流量的类别:
    echo 0x100001 >  /sys/fs/cgroup/net_cls/0/net_cls.classid
 
    3:使用 tc 命令配置网络限制:
        1> 建立队列:
        tc qdisc add dev eth0 root handle 10: htb
 
        2> 配置分类:
        tc class add dev eth0 parent 10: classid 10:1 htb rate 40mbit
 
        3> 添加过滤器:
        tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup
 
    4:添加进程到cgroup:
        手动写入进程ID:echo >/sys/fs/cgroup/memory/myapp/cgroup.procs   //需要先通过ps  -ef命令获取进程ID
       自动写入进程ID:cgexec -g net_cls:myapp xxx这里是要执行的命令,会自动写入进程ID到cgroup.procs文件中
    /*  将pid写入cgroup.procs,则该pid所在的线程组及该pid的子进程等都会自动加入到cgroup中 */
 
    tc class change dev eth0 parent 10:  classid 1:10 htb rate 91200Kbit ceil 91200Kbit //动态改变带宽
    tc qdisc del dev eth0 root        //删除qdisc和class配置
    tc qdisc show dev eth0            //显示qdisc配置
    tc class show dev eth0             //显示class配置
    tc filter show/del dev eth0       //查看/删除过滤配置
    /* 这里,eth0 是你想要限制网络流量的网络设备名称。htb(Hierarchical Token Bucket)是一种用于流量整形的算法,它允许你设置带宽限制。*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809869.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSP-S 2024 第十次

AK 了就结束,USACO 赛制是吧( 神秘难度排序,D<C<A<B A 手模一下可以发现线性基里的数最多也只有两位,考虑模拟一个数插进线性基的过程。 对于 \(2^x\),其会依次异或上 \(2^x+2^{x},2^{x}+2^{x}\)……直到线性基里找不到最高位为 \(x\) 的数,或者某时刻异或上了一…

技术解读GaussDB (for MySQL)流控机制

本文详细分析了GaussDB (for MySQL) 在不同层级的流控机制,包括反馈式流控在存储层和计算层的策略和流程,以及计算节点的主动平滑流控的方案。本文分享自华为云社区《【华为云MySQL技术专栏】GaussDB (for MySQL)流控技术解读》,作者:GaussDB 数据库。本文主要介绍GaussDB …

sicp每日一题[2.36-2.37]

果然习惯不能停,就两天没学,昨天就忘的干干净净了。。今天把昨天的补上Exercise 2.36The procedure accumulate-n is similar to accumulate except that it takes as its third argument a sequence of sequences, which are all assumed to have the same number of elemen…

秒杀系统的原则和注意项

做秒杀方案亦是如此,秒杀活动经常会引发高并发、系统宕机和库存超卖的棘手问题,作为开发者,我们该如何在保证系统稳定性的同时,防止业务风险呢?做任何技术方案都需要结合当时的业务场景、资金情况、用户体量等维度综合考虑,没有最好的技术方案,只有最合适的技术方案。做…

电力佩戴安全帽监测 安全带穿戴监测系统

电力佩戴安全帽监测和安全带穿戴监测系统通过在电力作业区域安装摄像头,电力佩戴安全帽监测 安全带穿戴监测系统对工作人员的佩戴情况进行实时监测。电力佩戴安全帽监测 安全带穿戴监测系统利用图像识别和深度学习技术,对工作人员的安全帽和安全带的佩戴情况进行识别和分析。…

比裁员更侮辱人的事发生了。。。

大家好,我是R哥。 前段时间和一个粉丝聊天,说他去年降过一次薪,今年公司又裁了一批,工资又不高,他现在一个人干着几个人的活,每天忙的要命,想脱离,看看更好的机会。 他躲过了裁员,没躲过降薪,没躲过一个人泰山压顶。 本想着冲动离职全身心找工作, 又想到有房贷要供,…

.NET 8.0 酒店管理系统设计与实现

前言 给大家推荐一个基于.NET 8.0 的中小型酒店设计的管理系统。 随着酒店的日常工作增加,很难用人工去进行处理一些繁琐的数据,也可能会因为人工的失误而造成酒店的损失,因此需要一款可以协助酒店进行内部管理的管理软件。 本文将详细介绍如何开发和使用酒店管理系统。 项目…

工地临边防护缺失识别检测系统

工地临边防护缺失识别检测系统通过在工地临边区域安装摄像头,工地临边防护缺失识别检测系统对现场施工工地进行实时监测。工地临边防护缺失识别检测系统检测到没有按照要求放置临边防护设备时,将自动发出警报提示现场管理人员及时采取措施。同时,工地临边防护缺失识别检测系…

渣土车密闭运输识别系统

渣土车密闭运输识别系统通过在工地出入口及周边安装摄像头,渣土车密闭运输识别系统对渣土车的密闭运输情况进行实时监测,渣土车密闭运输识别系统利用图像识别技术,对渣土车的密闭状态进行识别和分析。渣土车密闭运输识别系统检测到有未密闭的渣土车进入工地区域时,将自动发…

AI视频边缘分析盒

Ai视频边缘分析盒通过在场所内安装高清摄像头,AI视频边缘分析盒将采集到的视频信号通过AI视觉智能算法进行智能分析。AI视频边缘分析盒利用人工智能技术,可以对场所内的行人、车辆、物品等进行识别和分析,发现异常情况并及时报警。AI视频边缘分析盒利用人工智能技术,能够对…