cgroup初步实践

cgroup初步实践

1、查看cgroup 挂载情况

[root@registry cpu]# mount -t cgroup ###或者使用 lssubsys  -m 进行查看
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
[root@registry cpu]# 

2、cgroupg挂载解决方式)(mount -t cgroup没有结果)

参考下面操作可自行挂载(在生产环境中遇到centos6.8中没有cgroup,在/sys/fs下无法创建文件,只能创建至其他目录 mkdir -p /home/zqj/cgroup)

2.1 centos6.8
mkdir /mnt/cgroups/cpu
mount -t cgroup -o cpu,cpuacct cpu /mnt/cgroups/cpu
mkdir /mnt/cgroups/cpu/daemons
mkdir /mnt/cgroups/cpu/daemons/www
chown root:root /mnt/cgroups/cpu/daemons/www/*
chown root:webmaster /mnt/cgroups/cpu/daemons/www/tasks
echo 1000 > /mnt/cgroups/cpu/daemons/www/cpu.shares
mkdir /mnt/cgroups/cpu/daemons/ftp
chown root:root /mnt/cgroups/cpu/daemons/ftp/*
chown root:ftpmaster /mnt/cgroups/cpu/daemons/ftp/tasks
echo 500 > /mnt/cgroups/cpu/daemons/ftp/cpu.shares
2.2 centos7.0
mkdir  cgroup
mount  -t tmpfs cgroup_root . /cgroup
mkdir  cgroup /cpuset
mount  -t cgroup -ocpuset cpuset . /cgroup/cpuset/
mkdir  cgroup /cpu
mount  -t cgroup -ocpu cpu . /cgroup/cpu/
mkdir  cgroup /memory
mount  -t cgroup -omemory memory . /cgroup/memory/

挂载成功后,ll /sys/fs/cgroup/cpu 就能看见很多东西啦

3、创建测试目录

[root@registry memory]# pwd
/sys/fs/cgroup/memory
[root@registry memory]# mkdir -p test
[root@registry memory]# ls
cgroup.clone_children           memory.kmem.slabinfo                memory.memsw.limit_in_bytes      memory.swappiness
cgroup.event_control            memory.kmem.tcp.failcnt             memory.memsw.max_usage_in_bytes  memory.usage_in_bytes
cgroup.procs                    memory.kmem.tcp.limit_in_bytes      memory.memsw.usage_in_bytes      memory.use_hierarchy
cgroup.sane_behavior            memory.kmem.tcp.max_usage_in_bytes  memory.move_charge_at_immigrate  notify_on_release
memory.failcnt                  memory.kmem.tcp.usage_in_bytes      memory.numa_stat                 release_agent
memory.force_empty              memory.kmem.usage_in_bytes          memory.oom_control               tasks
memory.kmem.failcnt             memory.limit_in_bytes               memory.pressure_level            test
memory.kmem.limit_in_bytes      memory.max_usage_in_bytes           memory.soft_limit_in_bytes
memory.kmem.max_usage_in_bytes  memory.memsw.failcnt                memory.stat
[root@registry memory]# cd test/
[root@registry test]# ls
cgroup.clone_children           memory.kmem.slabinfo                memory.memsw.failcnt             memory.soft_limit_in_bytes
cgroup.event_control            memory.kmem.tcp.failcnt             memory.memsw.limit_in_bytes      memory.stat
cgroup.procs                    memory.kmem.tcp.limit_in_bytes      memory.memsw.max_usage_in_bytes  memory.swappiness
memory.failcnt                  memory.kmem.tcp.max_usage_in_bytes  memory.memsw.usage_in_bytes      memory.usage_in_bytes
memory.force_empty              memory.kmem.tcp.usage_in_bytes      memory.move_charge_at_immigrate  memory.use_hierarchy
memory.kmem.failcnt             memory.kmem.usage_in_bytes          memory.numa_stat                 notify_on_release
memory.kmem.limit_in_bytes      memory.limit_in_bytes               memory.oom_control               tasks
memory.kmem.max_usage_in_bytes  memory.max_usage_in_bytes           memory.pressure_level
[root@registry test]# 

4、限制内存使用

# 创建memory cgroup
$ mkdir  /sys/fs/cgroup/memory/test
$ echo  64k > /sys/fs/cgroup/memory/test/memory .limit_in_bytes
##内存限制   100M   100*1024*1024
# 把应用的进程的pid加入这个cgroup
$ echo  [pid] > /sys/fs/cgroup/memory/test/tasks
需要特别注意的是,生产中需要通过cgroup来限定内存使用率是不可取的,需要程序具备良好的内存回收机制,这是解决问题的根本方法。

5、删除test组

[root@registry ~]#  yum install libcgroup libcgroup-tools
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
[root@registry cpu]# cgdelete cpu:/test
[root@registry cpu]# ll
总用量 0
-rw-r--r--. 1 root root 0 930 09:47 cgroup.clone_children
--w--w--w-. 1 root root 0 930 09:47 cgroup.event_control
-rw-r--r--. 1 root root 0 930 09:47 cgroup.procs
-r--r--r--. 1 root root 0 930 09:47 cgroup.sane_behavior
-r--r--r--. 1 root root 0 930 09:47 cpuacct.stat
-rw-r--r--. 1 root root 0 930 09:47 cpuacct.usage
-r--r--r--. 1 root root 0 930 09:47 cpuacct.usage_percpu
-rw-r--r--. 1 root root 0 930 09:47 cpu.cfs_period_us
-rw-r--r--. 1 root root 0 930 09:47 cpu.cfs_quota_us
-rw-r--r--. 1 root root 0 930 09:47 cpu.rt_period_us
-rw-r--r--. 1 root root 0 930 09:47 cpu.rt_runtime_us
-rw-r--r--. 1 root root 0 930 09:47 cpu.shares
-r--r--r--. 1 root root 0 930 09:47 cpu.stat
-rw-r--r--. 1 root root 0 930 09:47 notify_on_release
-rw-r--r--. 1 root root 0 930 09:47 release_agent
-rw-r--r--. 1 root root 0 930 09:52 tasks
[root@registry cpu]# 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值