【Cgroup】Centos7上面的Cgroup簡單實驗

實驗目標

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

安裝配置工具

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

  

建立咱們的cgroup組my1

#建立分組
[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

[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%的資源

 

[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      -- 名稱空間子系統。
相關文章
相關標籤/搜索