sudo lsb_release -a
可以看到操作系统版本是20.04
,sudo uname -r
可以看到内核版本是5.4.0-156-generic
。
Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。
sudo mount -t cgroup
展示Cgroups给用户暴露出来的操作接口等文件系统。
ls /sys/fs/cgroup/cpu
看一下CPU 子系统中配置文件。
我们可以使用底下的方法来使用上边子系统的配置文件:
cd /sys/fs/cgroup/cpu
进入特定的目录,然后使用mkdir container
创建一个新目录。
container这样的目录称为一个控制组,操作系统会在你新创建的 container 目录下,自动生成该子系统对应的资源限制文件,ls container/
显示了生成的各种文件,如下图。
cd container/
进入特定的目录。
while : ; do : ; done &
后台执行while脚本开始进行吃内存。
按q退出top
。
sudo cat /sys/fs/cgroup/cpu/container/cpu.cfs_quota_us
sudo cat /sys/fs/cgroup/cpu/container/cpu.cfs_period_us
显示对应配置值。
sudo echo 20000 > /sys/fs/cgroup/cpu/container/cpu.cfs_quota_us
把20000写入cpu.cfs_quota_us中。
sudo echo 28435 > /sys/fs/cgroup/cpu/container/tasks
把PID——28435
写入到tasks中。
这里的PID——28435
是上边执行while
语句产生的。
再使用top
看一下,28435
的CPU使用率下降到20%左右。
按q退出top
。
sudo kill -9 28435
把进程杀死。
此文章为11月Day 3学习笔记,内容来源于极客时间《深入剖析 Kubernetes》。