首页 > 其他分享 >cpu,disk,mem 针对用户限制使用率

cpu,disk,mem 针对用户限制使用率

时间:2022-10-03 23:00:47浏览次数:87  
标签:jues 20 cgroup mem 0.0 Cgroup disk root cpu

Cgroup限制用户的CPU、内存和磁盘IO使用率

由 jues 提交于 2019/07/04 - 10:25 周四

标签

内容

昨天使用Linux系统,不小心操作导致系统内存用完,直接卡死,等了许久也没恢复过来,只能强制重启。

一个普通用户也能直接导致死机,实在太尴尬了,而且当时硬盘一直在高速读写,强制重启太伤硬盘了。

找了网上不少方法:

1. ulimit

2. nice/renice

3. Cgroup

后来还是觉得Cgroup最合适我,下面是一个基于CentOS7的测试demo。

1. 安装Cgroup

yum install libcgroup-tools libcgroup-pam libcgroup

2. /etc/cgconfig.conf

group users_normal_limit{
cpu{
# 限制CPU使用率为10%
cpu.cfs_period_us=100000;
cpu.cfs_quota_us=10000;
}

memory{
# 最高总使用内存为100M
memory.limit_in_bytes = 100M;
memory.soft_limit_in_bytes = 80M;
memory.swappiness = 0;
}
blkio{
# /dev/sda 最高磁盘读写IO为1M/秒 (8:0可通过ls -l /dev/sda命令查看得到)
blkio.throttle.read_bps_device="8:0 1024000";
blkio.throttle.write_bps_device="8:0 1024000";
}
}

检查配置是否正确

cgconfigparser -l /etc/cgconfig.conf

3.  /etc/cgrules.conf

# 用户组users    
@users cpu,memory,blkio users_normal_limit

4. 加入用户组

# 把jues加入受Cgroup限制的users组
usermod -a -G users jues

5. 使用配置生效

# 设置Cgroup服务开机启动
systemctl enable cgconfig
systemctl enable cgred

# 重启Cgroup服务
systemctl restart cgconfig
systemctl restart cgred

 

测试:

cpu测试:

[jues@vir-centos7 cgroup]$ matho-primes 0 999999999 > /dev/null 
%CPU %MEM     TIME+ COMMAND                                               
14666 jues 20 0 9256 2536 488 R 9.6 0.2 0:04.26 matho-primes
1 root 20 0 193700 4244 1692 S 0.0 0.4 0:06.18 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.49 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:00.68 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/0

内存测试:

[jues@vir-centos7 cgroup]$ dd if=/dev/zero of=1.dat bs=80M count=1
10+0 records in
10+0 records out
838860800 bytes (839 MB) copied, 22.8394 s, 36.7 MB/s
[jues@vir-centos7 cgroup]$ dd if=/dev/zero of=1.dat bs=100M count=1
Killed
[jues@vir-centos7 cgroup]$

磁盘IO测试:

# oflag=direct 为跳过内存缓存
[jues@vir-centos7 cgroup]$ dd if=1.dat of=2.dat bs=10M count=1 oflag=direct
1+0 records in
1+0 records out
10485760 bytes (10 MB) copied, 11.641 s, 901 kB/s

 

注意事项

1. CentOS7中默认没有安装mathomatic工具,需要自己下载编译:

# 下载mathomatic源码包
wget https://launchpad.net/mathomatic/15/15.6.5/+download/mathomatic-15.6.5.tar.bz2

# 安装解压tar.bz2工具
yum install epel-release
yum install bzip2

# 解压mathomatic
tar xvf mathomatic-15.6.5.tar.bz2
cd mathomatic-15.6.5/primes

# 安装编译工具
yum install gcc

# 编译
make

# 安装
make install

2. Fedora现在没有cgred

systemctl start cgred
Failed to start cgred.service: Unit cgred.service not found.

参考资料

【Cgroup】Centos7上面的Cgroup简单实验

​cgroup 应用​

​No cgrep in libcgroup​



标签:jues,20,cgroup,mem,0.0,Cgroup,disk,root,cpu
From: https://blog.51cto.com/u_13917906/5730610

相关文章

  • Qt-工程打开后,编译提示“error: member access into incomplete type 'Ui::MainWindow
    问题现象:之前程序都是可以正常运行的,编译也没有错误提示。今天打开工程后,提示“error:memberaccessintoincompletetype'Ui::MainWindow'”问题原因:原因:访问到不完整的......
  • CPU高速缓存行对齐和代码优化
    CacheLine众所周知,计算机将数据从主存读入Cache时,是把要读取数据附近的一部分数据都读取进来这样一次读取的一组数据就叫做CacheLine,每一级缓存中都能放很多的CacheLine两......
  • [架构之路-16]:目标系统 - 硬件平台 - CPU主要物理性能指标
    目录​​第1章多核CPU的架构​​​​第2章 CPU主要的物理性能指标​​​​2.1CPU频率​​​​2.2CPU的位和字长​​​​2.3CPU的缓存容量与性能​​​​2.4CPU工作电......
  • [架构之路-17]:目标系统 - 硬件平台 - ARM CPU架构与系列选型
    目录​​第1章 ARM概述​​​​1.1ARM的过去​​​​1.2 ARM内核架构版本与ARMCPU家族的对应关系​​​​1.3 ARMCPU家族系列​​​​1.4ARM cortex系列​​​​第......
  • CPU-数的表示-码
    1.原码表示法: +符号位0,-符号位1;2.补码表示法:{原码->补码,+原码==补码,-原码符号位不变,数据位取反加一},{补码->原码-原码符号位不变};3.反码表示法:-取反不加一;4.......
  • CPU--ALU逻辑单元--快速进位链
    加法器,电路逻辑实现,每一位对应相加,再加上低位来的进位;进位是运算速度的瓶颈;进位链:传送进位的链路;串行进位链:串行进位,与非门实现,从后往前,电路简单;......
  • CPU-计算机数的运算--浮点运算
    1.浮点运算的加减法;对阶,尾数求和,规格化,舍入,溢出判断;对阶:小->大尾数求和:补码    舍入:在对阶和右移的过程中,可能出现尾数末位丢弃,需要舍入......
  • CPU-计算机数的运算--定点运算
    1.定点表示;2.浮点表示; 3.1定点运算--算数移位,逻辑移位;3.2定点运算--加减; 溢出判断:一位符号位,数据最高进位和符号位进位采用异或电路判断;:二位符号位,运......
  • CPU--结构与功能简介2--中断系统
    中断请求标记:INTR中断判优逻辑:(硬件)排队器实现,(软件)程序查询。中断服务程序入口地址查找:硬件向量法,软件查询法;中断响应:响应中断的条件,EINT置1,响应中断的时间,执行周期结束......
  • CPU--结构和功能简介1
    1.结构和功能简介 功能决定结构; 2.指令周期:取址周期,间址周期,执行周期,中断周期;3.指令流水指令流水:各级部件最大时间执行,没有停顿。 ......