Как ограничить использование ЦП для конкретного процесса с помощью среды рабочего стола [duplicate]

Следуя примеру (черной магии) в Perl, чтобы извлечь все подстроки из трех букв

perl -ne 'while(/(\w)(?=(\w\w))/g){print "$1$2\n" }'
12
задан 24 January 2012 в 22:55

2 ответа

В отсутствие запрашиваемых данных ...

Вот как я использую cgroups на ubuntu.

На протяжении всего сообщения вам нужно будет изменить переменную «$ USER», для пользователя, выполняющего процесс

На протяжении этого сообщения вам нужно будет изменить переменную «USER» пользователю, выполняющему процесс

1) Установите cgroup-bin

sudo apt-get install cgroup-bin

2) Перезагрузитесь. cgroups теперь находятся в /sys/fs/cgroup

3) Создайте группу для своего пользователя (владельца процесса)

# Change $USER to the system user running your process. sudo cgcreate -a $USER -g memory,cpu:$USER

4) Пользователь может управлять ресурсами. По умолчанию пользователи получают 1024 единицы процессора (долей), поэтому, чтобы ограничить примерно до 10% процессора, память находится в байтах ...

# About 10 % cpu echo 100 > /cgroup/cpu/$USER/cpu.shares # 10 Mb echo 10000000 > /cgroup/memory/$USER/memory.limit_in_bytes

5) Запустите свой процесс (смените exec на cgexec)

# -g specifies the control group to run the process in # Limit cpu cgexec -g cpu:$USER command <options> & # Limit cpu and memory cgexec -g memory,cpu:$USER command <options> &

Конфигурация

Предполагая, что для вас работают группы;)

Измените /etc/cgconfig.conf, добавьте в свою пользовательскую группу

# Graphical gksudo gedit /etc/cgconfig.conf # Command line sudo -e /etc/cgconfig.conf

Добавьте в свою группу. Снова измените $ USER на имя пользователя, владеющего процессом.

group $USER { # Specify which users can admin (set limits) the group perm { admin { uid = $USER; } # Specify which users can add tasks to this group task { uid = $USER; } } # Set the cpu and memory limits for this group cpu { cpu.shares = 100; } memory { memory.limit_in_bytes = 10000000; } }

Вы также можете указать группы gid=$GROUP, /etc/cgconfig.conf хорошо прокомментирован.

Теперь снова выполните ваш процесс с помощью cgexec -g cpu:$USER command <options>

Вы можете увидеть свой процесс (по PID) в /sys/fs/cgroup/cpu/$USER/tasks

Пример

bodhi @ ufbt: ~ $ cgexec - g cpu: bodhi sleep 100 & amp; [1] 1499 bodhi @ ufbt: ~ $ cat / sys / fs / cgroup / cpu / bodhi / tasks 1499

Дополнительную информацию см. По адресу: http://docs.redhat.com/docs/en- США / Red_Hat_Enterprise_Linux / 6 / html / Resource_Management_Guide /

19
ответ дан 17 July 2018 в 23:13

В отсутствие запрашиваемых данных ...

Вот как я использую cgroups на ubuntu.

На протяжении всего сообщения вам нужно будет изменить переменную «$ USER», для пользователя, выполняющего процесс

На протяжении этого сообщения вам нужно будет изменить переменную «USER» пользователю, выполняющему процесс

1) Установите cgroup-bin

sudo apt-get install cgroup-bin

2) Перезагрузитесь. cgroups теперь находятся в /sys/fs/cgroup

3) Создайте группу для своего пользователя (владельца процесса)

# Change $USER to the system user running your process. sudo cgcreate -a $USER -g memory,cpu:$USER

4) Пользователь может управлять ресурсами. По умолчанию пользователи получают 1024 единицы процессора (долей), поэтому, чтобы ограничить примерно до 10% процессора, память находится в байтах ...

# About 10 % cpu echo 100 > /cgroup/cpu/$USER/cpu.shares # 10 Mb echo 10000000 > /cgroup/memory/$USER/memory.limit_in_bytes

5) Запустите свой процесс (смените exec на cgexec)

# -g specifies the control group to run the process in # Limit cpu cgexec -g cpu:$USER command <options> & # Limit cpu and memory cgexec -g memory,cpu:$USER command <options> &

Конфигурация

Предполагая, что для вас работают группы;)

Измените /etc/cgconfig.conf, добавьте в свою пользовательскую группу

# Graphical gksudo gedit /etc/cgconfig.conf # Command line sudo -e /etc/cgconfig.conf

Добавьте в свою группу. Снова измените $ USER на имя пользователя, владеющего процессом.

group $USER { # Specify which users can admin (set limits) the group perm { admin { uid = $USER; } # Specify which users can add tasks to this group task { uid = $USER; } } # Set the cpu and memory limits for this group cpu { cpu.shares = 100; } memory { memory.limit_in_bytes = 10000000; } }

Вы также можете указать группы gid=$GROUP, /etc/cgconfig.conf хорошо прокомментирован.

Теперь снова выполните ваш процесс с помощью cgexec -g cpu:$USER command <options>

Вы можете увидеть свой процесс (по PID) в /sys/fs/cgroup/cpu/$USER/tasks

Пример

bodhi @ ufbt: ~ $ cgexec - g cpu: bodhi sleep 100 & amp; [1] 1499 bodhi @ ufbt: ~ $ cat / sys / fs / cgroup / cpu / bodhi / tasks 1499

Дополнительную информацию см. По адресу: http://docs.redhat.com/docs/en- США / Red_Hat_Enterprise_Linux / 6 / html / Resource_Management_Guide /

19
ответ дан 24 July 2018 в 13:45

Другие вопросы по тегам:

Похожие вопросы: