美文网首页
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