【Cgroup】Centos7上面的Cgroup简单实验

实验目标

  • 控制CPU分配
  • 控制CPU使用率
  • 控制内存分配

安装配置工具

1
[root@10 cpu]#  yum install -y libcgroup-tools.x86_64 libcgroup

  

创建我们的cgroup组my1

1
2
3
4
5
6
7
8
9
10
11
#创建分组
[root@localhost ~]# cgcreate -g cpu,cpuset,memory:my1
#设置限制使用cpu   0
[root@localhost ~]# cgset -r cpuset.cpus=0 my1
#设置限制使用的内存条
[root@localhost ~]# cgset -r cpuset.cpus=0 my1
#设置限制cpu最多用到50%
[root@localhost ~]# cgset -r cpu.cfs_period_us=100000  my1
[root@localhost ~]# cgset -r cpu.cfs_quota_us=50000  my1
#设置限制内存最大使用大小,这里单位是byte,这里限制最多用512M
[root@localhost ~]# cgset -r memory.limit_in_bytes=524288000  my1

  

安装测试工具  matho-primes

1
2
3
4
5
[root@localhost small]#   wget  -O mathomatic-16.0.1.tar.bz2  http://download.chinaunix.net/down.php?id=42725&ResourceID=6566&site=1
[root@localhost small]#   yum install -y bzip2
[root@localhost small]#  bzip2 -b mathomatic-16.0.1.tar.bz2  && tar -xf mathomatic-16.0.1.tar
[root@localhost small]#  cd mathomatic-16.0.1/primes/
[root@localhost small]#  make && make install

  

测试,可以看到下面的matho-primes 进程使用了第一个cpu,50%的资源

 

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~]# cgexec  -g cpuset,memory,cpu:/my1 /usr/local/bin/matho-primes 0 999999999 > /dev/null &
[root@localhost ~]# top
top - 13:40:49 up 1 day,  2:05,  2 users,  load average: 0.00, 0.01, 0.10
Tasks: 180 total,  2 running, 178 sleeping,  0 stopped,  0 zombie
%Cpu0  : 50.2 us,  0.0 sy,  0.0 ni, 49.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8010804 total,  2646744 free,  4564848 used,  799212 buff/cache
KiB Swap:  1679356 total,  1679356 free,        0 used.  3059412 avail Mem
 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM    TIME+ COMMAND                                                                                                                                                           
6965 root      20  0    9200  2524    488 R  49.8  0.0  0:05.44 matho-primes 

  

 


 

 

Cgroup子系统

  •     blkio   -- 这个子系统为块设备设定输入/输出限制,比如物理设备(磁盘,固态硬盘,USB 等等)。
  •     cpu     -- 这个子系统使用调度程序提供对 CPU 的 cgroup 任务访问。
  •     cpuacct -- 这个子系统自动生成 cgroup 中任务所使用的 CPU 报告。
  •     cpuset  -- 这个子系统为 cgroup 中的任务分配独立 CPU(在多核系统)和内存节点。
  •     devices -- 这个子系统可允许或者拒绝 cgroup 中的任务访问设备。
  •     freezer -- 这个子系统挂起或者恢复 cgroup 中的任务。
  •     memory  -- 这个子系统设定 cgroup 中任务使用的内存限制,并自动生成由那些任务使用的内存资源报告。
  •     net_cls -- 这个子系统使用等级识别符(classid)标记网络数据包,可允许 Linux 流量控制程序(tc)识别从具体 cgroup 中生成的数据包。
  •     ns      -- 名称空间子系统。

 


 

posted on   ArlenJ  阅读(4401)  评论(0编辑  收藏  举报

编辑推荐:
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
阅读排行:
· 为DeepSeek添加本地知识库
· 精选4款基于.NET开源、功能强大的通讯调试工具
· DeepSeek智能编程
· 大模型工具KTransformer的安装
· [计算机/硬件/GPU] 显卡
点击右上角即可分享
微信分享提示