简单的cgroup小实验

做了两个简单的关于cgroup的实验,记录一下步骤:

1,ubuntu下安装cgroup-bin

sudo apt-get install cgroup-bin

安装以后并没有出现网上教程讲的两个配置文件,/etc/cgconfig.conf和/etc/cgrules.conf,但在/sys/fs里已经出现了cgroup的目录。


2,cpu

1)进入cd /sys/fs/cgroup/cpu

2)mkdir foo(创建一个实验用的cgroup)

3)sudo echo 50000 cpu.cfs_quota_us (设置cpu的时间分配)

4)写一个脚本,在连续不断的使用cpu做运算

============================

#!/bin/sh
x=0
while [ True ];do
            x=$x+1
    done;

===========================

运行脚本,然后使用top命令可以看到这个脚本使用了100%的cpu

5)将这个进程的pid写到tasks文件中,


6)此时可以看到cpu负载降到50%

3,memory

1)进入cd /sys/fs/cgroup/memory

2)mkdir foo2(创建一个实验用的cgroup)

3)cd foo2, sudo echo 1024 > memory.limit_in_bytes

4)写一个脚本,连续不断的分配内存

===========================

#!/usr/bin/env python

import os
import time
pid_num = os.getpid()

#print pid_num

var = 1
a = "abcdefgh"
b = "abcdefgh"
c = ""

time.sleep(10)

#while var == 1:

for i in range(1,30000000):
        c = "####".join([a,b]) + c

===========================================

5)将这个进程的pid写到tasks文件中,

echo pid > /sys/fs/cgroup/memory/foo/tasks

6)过了不久,可以看到这个进程被杀掉了

song@song-Lenovo-ideapad-300S-14ISK:~/cgroups-studying$ python3 run_mem.py
Killed


cgroup是一个相对复杂的模块,涉及到cpu的调度,内存的管理,以及device,IO等模块,接下来我会继续看看cgroup在内核和userspace中的代码,尝试了解一下原理。

echo pid > /sys/fs/cgroup/cpu/foo/tasks

6)此时可以看到cpu负载降到50%

3,memory

1)

1)进入cd /sys/fs/cgroup/memory

2)mkdir foo2(创建一个实验用的cgroup)

3)cd foo2, sudo echo 1024 > memory.limit_in_bytes

4)写一个脚本,连续不断的分配内存

===========================

#!/usr/bin/env python

import os
import time
pid_num = os.getpid()

#print pid_num

var = 1
a = "abcdefgh"
b = "abcdefgh"
c = ""

time.sleep(10)

#while var == 1:

for i in range(1,30000000):
        c = "####".join([a,b]) + c

===========================================

5)将这个进程的pid写到tasks文件中,

echo pid > /sys/fs/cgroup/memory/foo/tasks

6)过了不久,可以看到这个进程被杀掉了

song@song-Lenovo-ideapad-300S-14ISK:~/cgroups-studying$ python3 run_mem.py
Killed


cgroup是一个相对复杂的模块,涉及到cpu的调度,内存的管理,以及device,IO等模块,接下来我会继续看看cgroup在内核和userspace中的代码,尝试了解一下原理。


优酷里有一个系列的视频,关于CPU资源分配,做的实验比较复杂,分析的也比较透彻,可以参考。

http://v.youku.com/v_show/id_XMTQyNTMyMjI3Ng==.html?from=s1.8-1-1.2&spm=a2h0k.8191407.0.0

http://v.youku.com/v_show/id_XMTQyNTM3Mzg5Ng==.html?spm=a2h0j.8191423.module_basic_relation.5~5!2~5~5!3~5~5~A

http://v.youku.com/v_show/id_XMTQyNTM5ODY3Ng==.html?spm=a2h0j.8191423.module_basic_relation.5~5!2~5~5!4~5~5~A



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值