美文网首页
cgroup 的基本操作

cgroup 的基本操作

作者: peter_yzq | 来源:发表于2017-10-05 11:31 被阅读0次

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

相关文章

网友评论

      本文标题:cgroup 的基本操作

      本文链接:https://www.haomeiwen.com/subject/inihyxtx.html