目录
为docker作为准备
- yum -y install libcgroup
- yum -y install libcgroup-tools
- systemctl start cgconfig.service
- systemctl enable cgconfig.service
- systemctl status cgconfig
- 1.查看资源限制子系统
- lssubsys
-
- 2.查看子系统配置文件所在位置
- ls /sys/fs/cgroup/
-
- 3.查看CPU时间分片,用于保证分组所得到的CPU分片总量
- cat /sys/fs/cgroup/cpu/cpu.shares
- vim /etc/cgconfig.conf
- group lesscpu{
- cpu{
- cpu.shares=200;
- }
- }
-
- group morecpu {
- cpu{
- cpu.shares=800;
- }
- }
修改完配置文件需要重启下服务
system restart cgconfig
准备一个死循环脚本
vim /tmp/tmpshell.sh
- #!/bin/bash
-
- a=1
- while true
-
- do
- a=$[$a+1]
- done
通过三个窗口,第一个是正常窗口,第二个是lesscpu,第三个是morecpu;
第一个窗口
top
使用top命令查看当前进程
第二个窗口
cgexec -g cpu:morecpu bash /tmp/tmpshell.sh
第三个窗口
cgexec -g cpu:lesscpu bash /tmp/tmpshell.sh
三个窗口都运行相应代码后,如下
此时,%cpu还是接近100%的
原因:这台主机是多核cpu
通过命令查看硬件信息,发现有两个cpu
- echo 0 > /sys/devices/system/cpu/cpu0/online
- 让cpu0停止工作
- echo 1 > /sys/devices/system/cpu/cpu0/online
- 让cpu0工作
- echo 1 > /sys/devices/system/cpu/cpu1/online
- 让cpu1工作
-
-
- online为1工作,online为0不工作
多核cpu就关闭多余的cpu,留一个工作即可
对比下关闭前后的cpu信息
关闭前:cpu0,cpu1都在工作
关闭cpu0后:只剩下cpu1
分别保持在 80%和20%