The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Оптимизация отзывчивости десктоп-си..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Оптимизация отзывчивости десктоп-си..."  +/
Сообщение от auto_tips on 17-Ноя-10, 20:13 
По заявлению одного из разработчиков из компании Red Hat добиться эффекта существенного повышения отзывчивости десктоп-систем в условиях большой фоновой нагрузки можно через использование cgroup без дополнительных патчей Linux-ядра (http://www.opennet.ru/opennews/art.shtml?num=28671). Более того [[http://lkml.org/lkml/2010/11/16/392 утверждается]] что cgroup-метод работает даже лучше патча с привязкой групп планирования к TTY.

Метод проверен на Linux-ядре 2.6.32.

В /etc/rc.local добавляем:

   mkdir -p /dev/cgroup/cpu
   mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
   mkdir -m 0777 /dev/cgroup/cpu/user


В ~/.bashrc:

   if [ "$PS1" ] ; then  
        mkdir -m 0700 /dev/cgroup/cpu/user/$$
        echo $$ > /dev/cgroup/cpu/user/$$/tasks
   fi


URL: http://www.opennet.ru/openforum/vsluhforumID3/72547.html#208 http://lkml.org/lkml/2010/11/16/330
Обсуждается: http://www.opennet.ru/tips/info/2478.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от o_o on 17-Ноя-10, 20:13 
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mount: неизвестный тип файловой системы 'cgroup'
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от IceMan on 17-Ноя-10, 20:37 
Самосборное или древнее ядро? =)
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от assaron email on 17-Ноя-10, 21:11 
кто-нибудь может объяснить как оно работает?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от asddas on 18-Ноя-10, 01:44 
дает всем право переводить процессы между группами, на каждую сессию шела создает новую группу.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

11. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от pavlinux (ok) on 18-Ноя-10, 16:42 
> на каждую сессию шела создает новую группу.

Фигу! На каждый процесс с форками из шелла создаёт новую группу.
То есть процесс и его форки будут в одной группе, а fork + exec уже в другой.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

12. "Оптимизация отзывчивости десктоп-системы через использование..."  –2 +/
Сообщение от User294 (ok) on 18-Ноя-10, 18:19 
> дает всем право переводить процессы между группами,

Мне кажется или это не прикольно, когда кто угодно может контейнеры перефигаривать?!

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

17. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от pavlinux (ok) on 19-Ноя-10, 05:34 
Дык, Торвальдц тому товрищу так и написал, что мол vulnerable кастылек твой парниша!!!
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

5. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Аноним (??) on 18-Ноя-10, 03:03 
Есть такая вещь, как libcg. Она умеет это делать без ручных манипуляций...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Аноним (??) on 18-Ноя-10, 03:30 
В Fedora есть пакет libcgroup со скриптами в /etc/init.d, которые делают что-то похожее.
только непонятно нужно ли ещё добавлять что-то в ~/.bashrc или достаточно скриптов из libcgroup?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от anonymous (??) on 18-Ноя-10, 09:06 
> В Fedora есть пакет libcgroup со скриптами в /etc/init.d, которые делают что-то
> похожее.

Насколько я сужу по моей ф14 то тама это по дефаульту выключено и вообще вроде это вся борода тама для lxc ... ( который юзается через libvirtd, жаль что еще virt-manager до поддержки lxc не допилили :)  ( тама это токо в роадмапе) )


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от анонимус (??) on 18-Ноя-10, 16:03 
>>~/.bashrc

так это только для баш субпроцессов работает чтоли?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Crazy Alex email(??) on 18-Ноя-10, 16:35 
Да. Но идея, думаю, понятна, расширить не проблема. В частности - добавить соответствующие строки во врапперы для "тяжелого" софта. А так - говорят, в systemd будет позитрее механику управления группами.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

9. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Crazy Alex email(??) on 18-Ноя-10, 16:33 
Надо еще пару действий добавить для автоматического удаления групп, в которых больше нет процессов:

создать /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--

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Crazy Alex email(??) on 18-Ноя-10, 18:47 
Ошибся (у меня расположение другое). Если монтируется в /dev/cgroup/cpu, то в /usr/local/sbin/cgroup_clean, соответственно, и кладём

rmdir /dev/cgroup/cpu/$1

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

14. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Аноним (??) on 18-Ноя-10, 22:51 
Кто-нибудь заметил повышение отзывчивости с использованием cgroup?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 19-Ноя-10, 02:01 
Да.
На Федоре 14 make -j40, Файрфокс работает гладко, окна двигаются с незначительными застряганиями, даже не верится, что процессор на 80-100% два ядра загружены.

Но! Без нагрузки заметны застрягания при работе с окнами в KDE-4. Иногда система не отзывается до 20 секунд. При перемещении окон, при скроле в консолях наблюдаются рывки, что вызывает дискомфорт.
-------------

На SUSE сказало, что неизвестная файловая система cgroup (перекомпилировать ядро не стал). Ну и естественно  make -j40 полностью парализовал работу.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

18. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от vvvua (ok) on 19-Ноя-10, 09:50 
А если попробовать консольке из которой будут зваться "тяжелые" процессы nice поднять?
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

19. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 19-Ноя-10, 11:55 
При чем тут nice, я попробовал данный метод и ответил, ниже написал поправку и все.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

21. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от vvvua (ok) on 19-Ноя-10, 19:08 
> При чем тут nice, я попробовал данный метод и ответил, ниже написал
> поправку и все.

Мне интересно поведение Вашей системы в том же тесте в сравнении с nice, так как сам не пробовал. Ничего другого своим вопросом не хотел сказать.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

22. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 19-Ноя-10, 21:18 
Ok. Проверю.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

24. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 19-Ноя-10, 22:12 
Ну вот: собираем inkscape-0.48.0

Включаем   cgroup
# make -j40
Все красиво ютубе без рывков и застряганий, файрфокс при скролинге немного равками идет. Время сборки 7 минут, около 10 секунд отнесем на "люфт".


Отключаем  cgroup
# make clean
# reboot
# nice --adjustment=19 make -j40
Сиcтема ведет себя, так, как будто вовсе никакой компиляции нет.
Время сборки 6 минут и пару секунд.

Пусть даже была погрешность в 1 минуту, то и тогда, помойму, нет смысла в  cgroup.
# uname -sro
> Linux 2.6.35.6-48.fc14.x86_64 GNU/Linux

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

36. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от vvvua (ok) on 20-Ноя-10, 09:47 
Спасибо. Вы подтвердили моё предположение, что cgroup один из многих элементов влияния на шедулер Linux'а для небольшого количества пользователей, которым влом (или пока не умеют) использовать nice и подобное.
Имеет смысл включать cgroup в предустановленных системах. Например в нетбуках.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

48. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Crazy Alex (??) on 01-Фев-11, 23:28 
> Спасибо. Вы подтвердили моё предположение, что cgroup один из многих элементов влияния
> на шедулер Linux'а для небольшого количества пользователей, которым влом (или пока
> не умеют) использовать nice и подобное.
> Имеет смысл включать cgroup в предустановленных системах. Например в нетбуках.

cgroups могут ограничить гораздо больше, чем только процессорное время... То есть игры с cgroups сейчас  в самом начале, а вот из найса уже ничего не выжать

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

26. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Roman (??) on 20-Ноя-10, 00:06 
на какой сусе? у меня 11.2 и все заработало...
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

27. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 20-Ноя-10, 00:35 
OpenSUSE 11.3
2.6.34.7-0.5-desktop

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

28. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Roman (??) on 20-Ноя-10, 00:37 
> OpenSUSE 11.3
> 2.6.34.7-0.5-desktop

блин, а я ее себе на новую машину поставил ((

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

29. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 20-Ноя-10, 00:48 
>> OpenSUSE 11.3
>> 2.6.34.7-0.5-desktop
> блин, а я ее себе на новую машину поставил ((

Ну и что? Система хорошая, практически все работает. А за ядром не угнаться, либо сам пересобирай.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

45. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от stranger (??) on 24-Ноя-10, 14:15 
Десктопное ядро там без cgroups. Если оно вам надо ставьте ядро -default.
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

16. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 19-Ноя-10, 03:37 
*** Монтировать нужно в  /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!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Stax (ok) on 19-Ноя-10, 15:59 
Возможно.. На самом деле, рекомендацию монтировать в /dev/cgroup я взял из документации ядра (Documentation/cgroups/cgroups.txt), там показано использование именно /dev/cgroup. Но с sys вполне работает.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

23. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от pavlinux (ok) on 19-Ноя-10, 21:58 
Да это пофигу куда монтировать. Это ж VFS.

Хотя, самым оптимальным будет каталог в корне, из одной буквы,
то есть  mount -t cgroup cgroup /a -o cpu.

Угадайте почему? :)


  

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

25. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 19-Ноя-10, 22:17 
> Да это пофигу куда монтировать. Это ж VFS.
> Хотя, самым оптимальным будет каталог в корне, из одной буквы,
> то есть  mount -t cgroup cgroup /a -o cpu.
> Угадайте почему? :)

Возможно, пока в эту суть не вникал.


Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

30. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от pavlinux (ok) on 20-Ноя-10, 01:21 
>> Да это пофигу куда монтировать. Это ж VFS.
>> Хотя, самым оптимальным будет каталог в корне, из одной буквы,
>> то есть  mount -t cgroup cgroup /a -o cpu.
>> Угадайте почему? :)
> Возможно, пока в эту суть не вникал.

строка для open и подобных короче :)

open("/a", ....) или  
open("/dev/cgroup/cpu/user/", ....)

нанасекунды решают всё :)

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

32. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 20-Ноя-10, 02:02 
>>> Да это пофигу куда монтировать. Это ж VFS.
>>> Хотя, самым оптимальным будет каталог в корне, из одной буквы,
>>> то есть  mount -t cgroup cgroup /a -o cpu.
>>> Угадайте почему? :)
>> Возможно, пока в эту суть не вникал.
> строка для open и подобных короче :)
> open("/a", ....) или
> open("/dev/cgroup/cpu/user/", ....)
> нанасекунды решают всё :)

Заинтриговал. Сейчас попробую :)


Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

33. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 20-Ноя-10, 02:58 
Смонтировал в /0/u
Собираю inkscape
Вроде немного плавнее скролинг в файрфоксе.
Время сборки 00:08:46 :(
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

34. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от pavlinux (ok) on 20-Ноя-10, 03:05 
> Смонтировал в /0/u
> Собираю inkscape
> Вроде немного плавнее скролинг в файрфоксе.
> Время сборки 00:08:46 :(

Блин, я ж пошутил, там действительно разница в пару микросекунд. :)

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

35. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Logo (ok) on 20-Ноя-10, 03:27 
Зато:
без прибамбасов make -j40 --- 00:06:26 и никакого кино
c  nice --adjustment=19 make -j40 --- 00:08:14 с кино, картинками и гладкой работой

Конечно -j40, это неоптимально для скорости компиляции и с меншим значением толку будет больше, но эммитацию загруженности мы получили и nice оказался лучше.

Осталось потестить патч к ядру :)

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

37. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от mevlad on 20-Ноя-10, 21:11 
м. б. как-то так:

# 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

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

39. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от zillah on 22-Ноя-10, 09:01 
> # echo "session  optional pam_cgroup.so" >> /etc/pam.d/su

почему в su?

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

40. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от mevlad on 23-Ноя-10, 05:02 
в смысле?
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

41. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от zillah on 23-Ноя-10, 06:17 
> в смысле?

А тупо, каким образом модуль в su поможет пользователю?
Оно не грузится при логоне, открытии новой сессии...
Или я что-то не допонял, хотелось бы допонять, так как этот вариант мне больше импонирует нежели чем "ручной".

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

42. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от mevlad on 23-Ноя-10, 21:09 
это был пример использования pam-модуля.
в данном случаи идея в том, чтобы использовать те же правила для пользователя, если он выполняет нечто через su
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

44. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от zillah on 24-Ноя-10, 06:27 
> это был пример использования pam-модуля.
> в данном случаи идея в том, чтобы использовать те же правила для
> пользователя, если он выполняет нечто через su

Ну я думал предполагалась альтернатива шапке, кстати у меня оно как то не заработало, разбираться не стал, из шапки работает как нужно.

До кучи нарылась проблема, толи wine толи NV libGL к такому оказались не готовы... эххх.

Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

46. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от mevlad on 24-Ноя-10, 23:48 
на fedora 14 работает, проверял.
про "пример использования pam-модуля" имелись в виду именно изменения в /etc/pam.d/su
остальное - настройки libcgroup, точнее - cgconfig и cgreg
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

47. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от Pavel email(??) on 27-Дек-10, 00:09 
У меня также получилось, но вот вопрос: как работает cpu.shares = 512 ?, я запустил от пользователя burnMMX - но всеравно в top я вижу что 99% процессора использует burnMMX.
Как лимитировать процессор?
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

38. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от pavlinux (ok) on 21-Ноя-10, 14:03 
меж тем, появился второй вариант патча

http://groups.google.com/group/linux.kernel/msg/4346cbca04f9...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Оптимизация отзывчивости десктоп-системы через использование..."  +/
Сообщение от pavlinux (ok) on 23-Ноя-10, 21:28 
4-й вариант
http://groups.google.com/group/linux.kernel/browse_frm/threa...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру