Tuesday, 23 October 2012

Настройка cgroup на CentOS 6

Запускаем демон конфигурации сгрупп:
/etc/init.d/cgconfig start
chkconfig cgconfig on

После этого будут созданы группы:

cat /proc/mounts
rootfs / rootfs rw 0 0
/proc /proc proc rw,relatime 0 0
/sys /sys sysfs rw,relatime 0 0
udev /dev devtmpfs rw,relatime,size=8125048k,nr_inodes=2031262,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/mapper/vg_msk3-lv_root / ext4 rw,relatime,barrier=1,data=ordered 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/sdb1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
/dev/mapper/vg_msk3-lv_home /home ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
/dev/sdc /ssd ext3 rw,relatime,errors=continue,barrier=1,data=ordered 0 0
cgroup /cgroup/cpuset cgroup rw,relatime,cpuset 0 0
cgroup /cgroup/cpu cgroup rw,relatime,cpu 0 0
cgroup /cgroup/cpuacct cgroup rw,relatime,cpuacct 0 0
cgroup /cgroup/memory cgroup rw,relatime,memory 0 0
cgroup /cgroup/devices cgroup rw,relatime,devices 0 0
cgroup /cgroup/freezer cgroup rw,relatime,freezer 0 0
cgroup /cgroup/net_cls cgroup rw,relatime,net_cls 0 0
cgroup /cgroup/blkio cgroup rw,relatime,blkio 0 0


Настравиаем его:
vi /etc/cgrules.conf 
Вписываем в начало5
server-689-5106-ssh cpu client1
Включаем демон автораспихивания процессов по сгруппам на основании имени юзера:
chkconfig cgred on
/etc/init.d/cgred start

Создаем сгруппу, куда будут помещены процессы:
mkdir /cgroup/cpu/client1/
Настроим параметр приоритета процессора:
 echo 512 > /cgroup/cpu/client1/cpu.shares 
После этого, пробуем войти данным пользователем и все его процессы автоматически влетят в группу client1.

Смотрим, чтобы процессы попали в группу:

cat /cgroup/cpu/client1/tasks
18642
18643
18660
18671
18672
18674
18677



Все!

2 comments:

  1. "echo 512 > /cgroup/cpu/client1/cpu.shares"



    Паш, это проще в cgconfig.conf записывать (скриптом) и уж потом рестартовать cgconfig и cgred. Например так:

    group users/user1374 {
    cpu {
    cpu.shares = 60;
    }
    }


    group users/user1375 {
    cpu {
    cpu.shares = 500;
    }
    }


    group users/user1376 {
    cpu {
    cpu.shares = 1500;
    }
    }

    ReplyDelete
  2. Ого, круто! Не знал, что они настолько продвинулись.

    ReplyDelete

Note: only a member of this blog may post a comment.