cgroup 的基本操作

Cgroup 的全称是control group,早期由谷歌的工程师开发,用来对系统的cpu,内存,磁盘,带宽进行分组,然后分配程序在这些组里面运行。下面的实验是在cento中做的。

  • 1:安装group:yum install libcgroup

  • 2:通过这个命令可以查找到安装的cgroup相关文件的路径:rpm –query –list libcgroup | less

  • 3:通过 less /etc/cgcconfig.conf 可以查看到cgroup的子系统。



    d: 开启cgroup服务 service cgconfig start
    e: 这时候在 /cgroup目录下面的子目录就可以显示出来了。


  • 4: 查看其中一个目录下面的内容:ls -l /cgroup /blkio



    task 中包含的是由这个cgroup组控制的进程。可以通过echo “pid” > tasks 的命令向这个组中增加进程。

  • 5:在blkio目录下创建一个子文件夹,在这个子文件夹中会发现内容和父目录的一样。


  • 6:通过lscgroup 可以看到当前存在的cgroup控制组。



    由于没有比较好的可视化的工具,所以不做磁盘读写速率的实验,而是做内存的控制实验.

  • 7: 写一个程序,每次申请1M的空间,循环50次。


  • 8:在memory目录下面创建一个文件夹(test_memory).


  • 9:配置内存限制为5M.


  • 10:指定程序memory_limit 在test_memory的cgroup下运行。在申请的内存超过5M后程序就会被杀死。
    cgexec -g memory:/test_memory ~/github/memory_limit


    通过dmsg命令也可以看到进程被kill掉的信息。

其它相关命令:

1:创建文件的命令:
dd if=/dev/zero of=file-abc bs=1M count=3000
2:drop cache 的命令:
echo 3 > /proc/sys/vm/drop_caches.
3:cgroup 各项参数的说明:
https://www.kernel.org/doc/Documentation/cgroup-v1/
4:查看linux的磁盘命令:
ls -l /dev/sda*
5:iotop 工具可以查看io的读写速率。通过yum install iotop 进行安装后运行就可以了。
6:sync 命令可以将数据刷到磁盘中。
7:cgroup的一些其它的调试命令:
cgsnapshot -s 可以查看当前配置的cgroup组。
/etc/cgrules.conf 可以配置一些规则。如配置某一个用户归哪一个cgroup组管。


8:chkconfig –list | grep cg. 有空可以研究一下 cgred

本文中的内容按照如下的博客进行。
https://sysadmincasts.com/episodes/14-introduction-to-linux-control-groups-cgroups

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容