The OpenNET Project / Index page

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

Оптимизация отзывчивости десктоп-системы через использование cgroup в Linux
По заявлению одного из разработчиков из компании Red Hat добиться эффекта
существенного повышения отзывчивости десктоп-систем в условиях большой фоновой
нагрузки, связанной с запуском ресурсоемких задач, можно через использование
cgroup без дополнительных патчей Linux-ядра. Более того, утверждается что
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

Для автоматического удаления групп, в которых больше нет процессов:

создать /usr/local/sbin/cgroup_clean

   #!/bin/sh
   rmdir /dev/cgroup/$1

в rc.local добавить:

   echo "1" > /dev/cgroup/cpu/user/notify_on_release
   echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
 
18.11.2010 , Автор: Stax , Источник: http://www.opennet.ru/openforum/vsl... (доп. ссылка 1)
Ключи: cgroup, latency, linux, kernel, tune, speed, optimization / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Linux специфика / Оптимизация и тюнинг в Linux

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, o_o, 20:13, 17/11/2010 [ответить] [смотреть все]
  • +/
    mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
    mount: неизвестный тип файловой системы 'cgroup'
     
     
  • 2.2, IceMan, 20:37, 17/11/2010 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Самосборное или древнее ядро? =)
     
  • 1.3, assaron, 21:11, 17/11/2010 [ответить] [смотреть все]
  • +/
    кто-нибудь может объяснить как оно работает?
     
     
  • 2.4, asddas, 01:44, 18/11/2010 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    дает всем право переводить процессы между группами, на каждую сессию шела создае... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.11, pavlinux, 16:42, 18/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Фигу На каждый процесс с форками из шелла создаёт новую группу То есть процес... весь текст скрыт [показать]
     
  • 3.12, User294, 18:19, 18/11/2010 [^] [ответить] [смотреть все]  
  • –2 +/
    Мне кажется или это не прикольно, когда кто угодно может контейнеры перефигарива... весь текст скрыт [показать]
     
     
  • 4.17, pavlinux, 05:34, 19/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Дык, Торвальдц тому товрищу так и написал, что мол vulnerable кастылек твой парн... весь текст скрыт [показать]
     
  • 1.5, Аноним, 03:03, 18/11/2010 [ответить] [смотреть все]  
  • +/
    Есть такая вещь, как libcg. Она умеет это делать без ручных манипуляций...
     
  • 1.6, Аноним, 03:30, 18/11/2010 [ответить] [смотреть все]  
  • +/
    В Fedora есть пакет libcgroup со скриптами в etc init d, которые делают что-то ... весь текст скрыт [показать]
     
     
  • 2.7, anonymous, 09:06, 18/11/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Насколько я сужу по моей ф14 то тама это по дефаульту выключено и вообще вроде э... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, анонимус, 16:03, 18/11/2010 [ответить] [смотреть все]  
  • +/
    >>~/.bashrc

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

     
     
  • 2.10, Crazy Alex, 16:35, 18/11/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да Но идея, думаю, понятна, расширить не проблема В частности - добавить соотв... весь текст скрыт [показать] [показать ветку]
     
  • 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, то в u... весь текст скрыт [показать] [показать ветку]
     
  • 1.14, Аноним, 22:51, 18/11/2010 [ответить] [смотреть все]  
  • +/
    Кто-нибудь заметил повышение отзывчивости с использованием cgroup?
     
     
  • 2.15, Logo, 02:01, 19/11/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да На Федоре 14 make -j40, Файрфокс работает гладко, окна двигаются с незначит... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, vvvua, 09:50, 19/11/2010 [^] [ответить] [смотреть все]  
  • +/
    А если попробовать консольке из которой будут зваться тяжелые процессы nice по... весь текст скрыт [показать]
     
     
  • 4.19, Logo, 11:55, 19/11/2010 [^] [ответить] [смотреть все]  
  • +/
    При чем тут nice, я попробовал данный метод и ответил, ниже написал поправку и в... весь текст скрыт [показать]
     
     
  • 5.21, vvvua, 19:08, 19/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Мне интересно поведение Вашей системы в том же тесте в сравнении с nice, так как... весь текст скрыт [показать]
     
     
  • 6.22, Logo, 21:18, 19/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Ok. Проверю.
     
  • 6.24, Logo, 22:12, 19/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Ну вот собираем inkscape-0 48 0 Включаем cgroup make -j40 Все красиво ютубе... весь текст скрыт [показать]
     
     
  • 7.36, vvvua, 09:47, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Спасибо Вы подтвердили моё предположение, что cgroup один из многих элементов в... весь текст скрыт [показать]
     
     
  • 8.48, Crazy Alex, 23:28, 01/02/2011 [^] [ответить] [смотреть все]  
  • +/
    cgroups могут ограничить гораздо больше, чем только процессорное время То ест... весь текст скрыт [показать]
     
  • 3.26, Roman, 00:06, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    на какой сусе? у меня 11.2 и все заработало...
     
     
  • 4.27, Logo, 00:35, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    OpenSUSE 11.3
    2.6.34.7-0.5-desktop

     
     
  • 5.28, Roman, 00:37, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    блин, а я ее себе на новую машину поставил ... весь текст скрыт [показать]
     
     
  • 6.29, Logo, 00:48, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Ну и что Система хорошая, практически все работает А за ядром не угнаться, либ... весь текст скрыт [показать]
     
     
  • 7.45, stranger, 14:15, 24/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Десктопное ядро там без cgroups. Если оно вам надо ставьте ядро -default.
     
  • 1.16, Logo, 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, 15:59, 19/11/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Возможно На самом деле, рекомендацию монтировать в dev cgroup я взял из докум... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, pavlinux, 21:58, 19/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Да это пофигу куда монтировать Это ж VFS Хотя, самым оптимальным будет каталог... весь текст скрыт [показать]
     
     
  • 4.25, Logo, 22:17, 19/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Возможно, пока в эту суть не вникал ... весь текст скрыт [показать]
     
     
  • 5.30, pavlinux, 01:21, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    строка для open и подобных короче open a , или open dev cgroup c... весь текст скрыт [показать]
     
     
  • 6.32, Logo, 02:02, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Заинтриговал Сейчас попробую ... весь текст скрыт [показать]
     
     
  • 7.33, Logo, 02:58, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Смонтировал в 0 u Собираю inkscape Вроде немного плавнее скролинг в файрфоксе ... весь текст скрыт [показать]
     
     
  • 8.34, pavlinux, 03:05, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Блин, я ж пошутил, там действительно разница в пару микросекунд ... весь текст скрыт [показать]
     
     
  • 9.35, Logo, 03:27, 20/11/2010 [^] [ответить] [смотреть все]  
  • +/
    Зато без прибамбасов make -j40 --- 00 06 26 и никакого кино c nice --adjustmen... весь текст скрыт [показать]
     
  • 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

     
     
  • 3.39, zillah, 09:01, 22/11/2010 [^] [ответить] [смотреть все]  
  • +/
    > # echo "session  optional pam_cgroup.so" >> /etc/pam.d/su

    почему в su?

     
     
  • 4.40, mevlad, 05:02, 23/11/2010 [^] [ответить] [смотреть все]  
  • +/
    в смысле?
     
     
  • 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.
    Как лимитировать процессор?
     
  • 1.38, pavlinux, 14:03, 21/11/2010 [ответить] [смотреть все]  
  • +/
    меж тем, появился второй вариант патча

    http://groups.google.com/group/linux.kernel/msg/4346cbca04f92350?hl=en&dmode=

     
  • 1.43, pavlinux, 21:28, 23/11/2010 [ответить] [смотреть все]  
  • +/
    4-й вариант
    http://groups.google.com/group/linux.kernel/browse_frm/thread/a012df180affc8d
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:




      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList