|
|
2.4, asddas (?), 01:44, 18/11/2010 [^] [ответить] [к модератору]
| +/– |
дает всем право переводить процессы между группами, на каждую сессию шела создает новую группу.
|  | |
|
3.11, pavlinux (ok), 16:42, 18/11/2010 [^] [ответить] [к модератору]
| +/– |
> на каждую сессию шела создает новую группу.
Фигу! На каждый процесс с форками из шелла создаёт новую группу.
То есть процесс и его форки будут в одной группе, а fork + exec уже в другой.
|  | |
3.12, User294 (ok), 18:19, 18/11/2010 [^] [ответить] [к модератору]
| –2 +/– |
> дает всем право переводить процессы между группами,
Мне кажется или это не прикольно, когда кто угодно может контейнеры перефигаривать?!
|  | |
|
|
1.6, Аноним (-), 03:30, 18/11/2010 [ответить] [показать ветку] [···] [к модератору]
| +/– |
В Fedora есть пакет libcgroup со скриптами в /etc/init.d, которые делают что-то похожее.
только непонятно нужно ли ещё добавлять что-то в ~/.bashrc или достаточно скриптов из libcgroup?
|  | |
1.9, Crazy Alex (??), 16:33, 18/11/2010 [ответить] [показать ветку] [···] [к модератору]
| +/– |
Надо еще пару действий добавить для автоматического удаления групп, в которых больше нет процессов:
создать /usr/local/sbin/cgroup_clean
--cut--
#!/bin/sh
rmdir /dev/cgroup/$1
--cut--
в rc.local добавить:
--cut--
echo "1" > /dev/cgroup/cpu/user/notify_on_release
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
--cut--
|  | |
|
2.13, Crazy Alex (??), 18:47, 18/11/2010 [^] [ответить] [к модератору]
| +/– |
Ошибся (у меня расположение другое). Если монтируется в /dev/cgroup/cpu, то в /usr/local/sbin/cgroup_clean, соответственно, и кладём
rmdir /dev/cgroup/cpu/$1
|  | |
|
|
|
|
|
|
6.29, Logo (ok), 00:48, 20/11/2010 [^] [ответить] [к модератору]
| +/– |
>> OpenSUSE 11.3
>> 2.6.34.7-0.5-desktop
> блин, а я ее себе на новую машину поставил ((
Ну и что? Система хорошая, практически все работает. А за ядром не угнаться, либо сам пересобирай.
|  | |
|
|
|
|
|
1.16, Logo (ok), 03:37, 19/11/2010 [ответить] [показать ветку] [···] [к модератору]
| +/– |
*** Монтировать нужно в /sys/fs/cgroup ***
*** Это избавит от застряганий и рывков ***
в rc.local пишем:
mount -t cgroup cgroup /sys/fs/cgroup -o cpu
mkdir -m 0777 /sys/fs/cgroup/user
echo "1" > /sys/fs/cgroup/user/notify_on_release
echo "/usr/local/sbin/cgroup_clean" > /sys/fs/cgroup/release_agent
---------------------
в ~/bashrc пишем:
if [ "$PS1" ] ; then
mkdir -m 0700 /sys/fs/cgroup/user/$$
echo $$ > /sys/fs/cgroup/user/$$/tasks
fi
---------------------
в /usr/local/sbin/cgroup_clean пишем:
#!/bin/sh
rmdir /sys/fs/cgroup/$1
----------------------
Работает без проблем. При монтировании в /dev/ у меня на Fedora 14, после интенсивной нагрузки система дергалась, а при монтировании в /sys/fs/ все OK!
|  | |
|
2.20, Stax (ok), 15:59, 19/11/2010 [^] [ответить] [к модератору]
| +/– |
Возможно.. На самом деле, рекомендацию монтировать в /dev/cgroup я взял из документации ядра (Documentation/cgroups/cgroups.txt), там показано использование именно /dev/cgroup. Но с sys вполне работает.
|  | |
|
3.23, pavlinux (ok), 21:58, 19/11/2010 [^] [ответить] [к модератору]
| +/– |
Да это пофигу куда монтировать. Это ж VFS.
Хотя, самым оптимальным будет каталог в корне, из одной буквы,
то есть mount -t cgroup cgroup /a -o cpu.
Угадайте почему? :)
|  | |
|
4.25, Logo (ok), 22:17, 19/11/2010 [^] [ответить] [к модератору]
| +/– |
> Да это пофигу куда монтировать. Это ж VFS.
> Хотя, самым оптимальным будет каталог в корне, из одной буквы,
> то есть mount -t cgroup cgroup /a -o cpu.
> Угадайте почему? :)
Возможно, пока в эту суть не вникал.
|  | |
|
5.30, pavlinux (ok), 01:21, 20/11/2010 [^] [ответить] [к модератору]
| +/– |
>> Да это пофигу куда монтировать. Это ж VFS.
>> Хотя, самым оптимальным будет каталог в корне, из одной буквы,
>> то есть mount -t cgroup cgroup /a -o cpu.
>> Угадайте почему? :)
> Возможно, пока в эту суть не вникал.
строка для open и подобных короче :)
open("/a", ....) или
open("/dev/cgroup/cpu/user/", ....)
нанасекунды решают всё :)
|  | |
|
6.32, Logo (ok), 02:02, 20/11/2010 [^] [ответить] [к модератору]
| +/– |
>>> Да это пофигу куда монтировать. Это ж VFS.
>>> Хотя, самым оптимальным будет каталог в корне, из одной буквы,
>>> то есть mount -t cgroup cgroup /a -o cpu.
>>> Угадайте почему? :)
>> Возможно, пока в эту суть не вникал.
> строка для open и подобных короче :)
> open("/a", ....) или
> open("/dev/cgroup/cpu/user/", ....)
> нанасекунды решают всё :)
Заинтриговал. Сейчас попробую :)
|  | |
|
7.33, Logo (ok), 02:58, 20/11/2010 [^] [ответить] [к модератору]
| +/– |
Смонтировал в /0/u
Собираю inkscape
Вроде немного плавнее скролинг в файрфоксе.
Время сборки 00:08:46 :(
|  | |
|
8.34, pavlinux (ok), 03:05, 20/11/2010 [^] [ответить] [к модератору]
| +/– |
> Смонтировал в /0/u
> Собираю inkscape
> Вроде немного плавнее скролинг в файрфоксе.
> Время сборки 00:08:46 :(
Блин, я ж пошутил, там действительно разница в пару микросекунд. :)
|  | |
|
9.35, Logo (ok), 03:27, 20/11/2010 [^] [ответить] [к модератору]
| +/– |
Зато:
без прибамбасов make -j40 --- 00:06:26 и никакого кино
c nice --adjustment=19 make -j40 --- 00:08:14 с кино, картинками и гладкой работой
Конечно -j40, это неоптимально для скорости компиляции и с меншим значением толку будет больше, но эммитацию загруженности мы получили и nice оказался лучше.
Осталось потестить патч к ядру :)
|  | |
|
|
|
|
|
|
|
2.37, mevlad (?), 21:11, 20/11/2010 [^] [ответить] [к модератору]
| +/– |
м. б. как-то так:
# yum -y install libcgroup libcgroup-pam
#echo "vlad cpu users/vlad/" >> /etc/cgrules.conf
# cat >> /etc/cgconfig.conf << EOF
group users/vlad {
perm {
task {
uid = vlad;
gid = vlad;
}
admin {
uid = root;
gid = vlad;
}
}
cpu {
cpu.shares = 2048;
notify_on_release =1;
}
}
EOF
# echo "session optional pam_cgroup.so" >> /etc/pam.d/su
# chkconfig cgconfig on
# chkconfig cgred on
# service cgconfig start
# servive cgreg start
|  | |
|
|
|
5.41, zillah (?), 06:17, 23/11/2010 [^] [ответить] [к модератору]
| +/– |
> в смысле?
А тупо, каким образом модуль в su поможет пользователю?
Оно не грузится при логоне, открытии новой сессии...
Или я что-то не допонял, хотелось бы допонять, так как этот вариант мне больше импонирует нежели чем "ручной".
|  | |
|
6.42, mevlad (?), 21:09, 23/11/2010 [^] [ответить] [к модератору]
| +/– |
это был пример использования pam-модуля.
в данном случаи идея в том, чтобы использовать те же правила для пользователя, если он выполняет нечто через su
|  | |
|
7.44, zillah (?), 06:27, 24/11/2010 [^] [ответить] [к модератору]
| +/– |
> это был пример использования pam-модуля.
> в данном случаи идея в том, чтобы использовать те же правила для
> пользователя, если он выполняет нечто через su
Ну я думал предполагалась альтернатива шапке, кстати у меня оно как то не заработало, разбираться не стал, из шапки работает как нужно.
До кучи нарылась проблема, толи wine толи NV libGL к такому оказались не готовы... эххх.
|  | |
|
8.46, mevlad (?), 23:48, 24/11/2010 [^] [ответить] [к модератору]
| +/– |
на fedora 14 работает, проверял.
про "пример использования pam-модуля" имелись в виду именно изменения в /etc/pam.d/su
остальное - настройки libcgroup, точнее - cgconfig и cgreg
|  | |
|
|
|
|
|
3.47, Pavel (??), 00:09, 27/12/2010 [^] [ответить] [к модератору]
| +/– |
У меня также получилось, но вот вопрос: как работает cpu.shares = 512 ?, я запустил от пользователя burnMMX - но всеравно в top я вижу что 99% процессора использует burnMMX.
Как лимитировать процессор?
|  | |
|
|
|
|