cgroup使用案例

来源:互联网 发布:五谷磨房固元膏淘宝 编辑:程序博客网 时间:2024/05/06 01:02

1、环境 CentOS 6.5

2.安装libcgroup

[root@Slave2 yum.repos.d]# yum install libcgroup
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package libcgroup.x86_64 0:0.40.rc1-23.el6 will be installed
--> Finished Dependency Resolution


Dependencies Resolved


================================================================================
 Package           Arch           Version                    Repository    Size
================================================================================
Installing:
 libcgroup         x86_64         0.40.rc1-23.el6            base         131 k


Transaction Summary
================================================================================
Install       1 Package(s)


Total download size: 131 k
Installed size: 331 k
Is this ok [y/N]: Y
Downloading Packages:
libcgroup-0.40.rc1-23.el6.x86_64.rpm                     | 131 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of mysql-libs
  Installing : libcgroup-0.40.rc1-23.el6.x86_64                             1/1 
  Verifying  : libcgroup-0.40.rc1-23.el6.x86_64                             1/1 


Installed:
  libcgroup.x86_64 0:0.40.rc1-23.el6                                            


Complete!

3.启动libcgroup

[root@Slave2 yum.repos.d]# service cgconfig start 
Starting cgconfig service:                                 [  OK  ]

4.配置开机启动

[root@Slave2 yum.repos.d]# chkconfig cgconfig on 

5.查看cgroup运行状态

[root@Slave2 yum.repos.d]# service cgconfig status
Running

6.写一个耗CPU脚本

x=0while [ True ];do    x=$x+1done;
7.top可以看到这个脚本基本占了100%的cpu资源
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
30142
root 20 0 104m 2520 1024 R 99.7 0.1 14:38.97 sh

8.下面用cgroups控制这个进程的cpu资源

mkdir -p /cgroup/cpu/foo/   #新建一个控制组fooecho 50000 > /cgroup/cpu/foo/cpu.cfs_quota_us  #将cpu.cfs_quota_us设为50000,相对于cpu.cfs_period_us的100000是50%echo 30142 > /cgroup/cpu/foo/tasks

9.然后top的实时统计数据如下,cpu占用率将近50%,看来cgroups关于cpu的控制起了效果

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                         30142 root      20   0  105m 2884 1024 R 49.4  0.2  23:32.53 sh 
原创粉丝点击