1. 程式人生 > >linux centos7 cgroup 命令列操作

linux centos7 cgroup 命令列操作

1, lssubsys -am 檢視系統中已經存在的參cgroup子系統以及子系統的掛載點:          cpuset /sys/fs/cgroup/cpuset
cpu,cpuacct /sys/fs/cgroup/cpu,cpuacct
memory /sys/fs/cgroup/memory
devices /sys/fs/cgroup/devices
freezer /sys/fs/cgroup/freezer
net_cls /sys/fs/cgroup/net_cls
blkio /sys/fs/cgroup/blkio
perf_event /sys/fs/cgroup/perf_event
hugetlb /sys/fs/cgroup/hugetlb memory /sys/fs/cgroup/memory 2, 命令列掛載和解除安裝子系統:     # umount /sys/fs/cgroup/memory/  
    執行後lssubsys -am 就不會看到memory 子系統的掛載點了     #mount -t cgroup -o memory memory111 /sys/fs/cgroup/memory/
     在這條命令中 memory是要掛載的cgroup子系統名稱, memory111 是在/proc/mounts檔案中顯示的名稱                #cat /proc/mounts就會看到一行    memory111 /sys/fs/cgroup/memory cgroup rw,relatime,memory 0 0 3, 在linux系統中有/etc/cgconfig.conf 檔案,在這個檔案裡面可以建立自動開機自動啟動的掛載條目:       
      mount {#定義需要建立的cgroup子系統及其掛載點,這裡建立cpu與cpuacct(統計)兩個cgroup子系統
                     cpu = /mnt/cgroups/cpu;
                     cpuacct = /mnt/cgroups/cpu;
              }
4, 命令列建立控制組群:
#cgreate -g memory:/test
執行後就會在memory掛載目錄下/sys/fs/cgroup/memory/ 目錄下看到一個新的目錄test,這個就是新建立的memory子控制組群
#cgdelete -g memory:/test
執行後就會刪除memory的子控制組群test 5,設定組群引數: 假設 存在/sys/fs/cgroup/cpuset/test 組群 #cgset -r cpuset.cpus=0-1 test #cat /sys/fs/cgroup/cpuset/test/cpuset.cpus 0-1 6, 將某個程序移動到控制組群中
    假設 存在/sys/fs/cgroup/cpuset/test 組群    
cgclassify -g subsystems:path_to_CGROUPS pidlist
# ps aux | grep sshd
root       871  0.0  0.0  82508  3600 ?        Ss   12:47   0:00 /usr/sbin/sshd -D

得到程序號871,通過cgclassify把程序加入到/sys/fs/cgroup/test 組群中,命令如下:
# cgclassify -g cpuset:/test 871
# cat /sys/fs/cgroup/cpuset/test/tasks 就會看到871程序在這個檔案下