The OpenNET Project / Index page

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

13.01.2011 13:05  ulatencyd - система динамической оптимизации отзывчивости Linux-системы

В списке рассылки разработчиков Linux-ядра представлено системное приложение ulatencyd, меняющее в фоновом режиме параметры планировщика задач (через манипуляцию с cgroups, nice, ionice и т.п.) и другие характеристики Linux-ядра, динамически подгоняя их для обеспечения максимальной отзывчивости десктоп-системы.

Параметры работы ulatencyd задаются через правила, оформленные в виде скриптов на языке Lua (непосредственно демон написан на Си), поэтому пользователь легко может изменить поведение и реализовывать собственные методы тюнинга. Для сбора информации о состоянии процессов используются данные из файловой системы proc, интерфейса netlink и встроенной в ядро системы аудита. При росте нагрузки со стороны отдельных процессов демон на основании определенных на языке Lua правил принимает решение об ужесточении лимитов для проблемного процесса (изоляция, урезание доступной памяти или помещение в отдельный cgroups), после чего отслеживает эффект от внесенных изменений путем контроля обратной связи.

Эффект от использования ulatencyd при запуске ресурсоемких задач на десктоп-системе сравним c 200-строчным патчем, группирующим задачи в привязке к TTY, или помещении процессов в отдельные cgroup при запуске сервисов. Например, запуск в консоли сборки проекта в 40 потоков ("make -j 40") не мешает просмотру фильма в HD-разрешении. Тем не менее реализация группировки задач на уровне ядра лишена гибкости, в то время как ulatencyd может применять эвристические методы для принятия решений, учитывающие специфику десктоп-систем и взаимодействуя с X-сервером через DBus. Проект пока находится на начальной стадии развития и не поддерживает некоторые тонкие моменты, такие как состояние раздела подкачки (бесконечный свопинг) и разрастание числа процессов (fork-бомбы).

  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
  2. OpenNews: Патч, решающий проблемы с отзывчивостью Linux-десктопа
  3. Оптимизация отзывчивости десктоп-системы через использование cgroup в Linux
  4. OpenNews: В Linux-ядро будут внесены улучшения, существенно влияющие на интерактивность
  5. OpenNews: Второй отчет о развитии системного менеджера systemd
  6. OpenNews: Релиз Linux-ядра 2.6.37
Лицензия: CC-BY
Тип: Программы
Ключевые слова: ulatencyd, cgroups, kernel, linux, scheduler, limit, proccess
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 13:53, 13/01/2011 [ответить] [смотреть все]
  • +/
    Больше программ хороших и разных
     
     
  • 2.51, 0xCC, 22:53, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]
  • –2 +/
    и что характерно, главное начать сначала решили подобное в ядре, и теперь люди ... весь текст скрыт [показать] [показать ветку]
     
  • 1.2, Анон, 14:00, 13/01/2011 [ответить] [смотреть все]  
  • –1 +/
    (хмыкаю) Лучше меньше да лучше (С) В.И. Ленин.
     
  • 1.3, Аноним, 14:12, 13/01/2011 [ответить] [смотреть все]  
  • +11 +/
    Радуют сдвиги в верном направлении, не радует что для этого потребовалось 20 лет, и до сих пор далеко не все разработчики осознают значимость отзывчивости десктопа, а ведь это важнейший параметр.
     
     
  • 2.4, Другой аноним, 14:17, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • –9 +/
    Может потому, что она не очень значима Ведь это удобство, не более того ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.7, Аноним, 14:27, 13/01/2011 [^] [ответить] [смотреть все]  
  • +10 +/
    >Ведь это удобство, не более того.

    На десктопе именно это и есть самое главное. Я не могу работать, когда все лагает и тормозит. Пользователю как правило плевать на то, что какой-нибудь gzip упакует 8Гб на 5 секунд медленней, а вот если во время той же упаковки ничего больше делать невозможно, то это уже очень сильно раздражает.
    Кстати, это прекрасная иллюстрация технократического образа мышления, в котором на первое место ставится не человек а машина. Пару лет назад создавалось впечатление, что Con Kolivas был единственным разработчиком, который заботился о простых юзерах)

     
  • 3.10, grayich, 14:37, 13/01/2011 [^] [ответить] [смотреть все]  
  • +6 +/
    значима!
    Если лет 5 назад ещё можно было поспорить, то сейчас линукс на десктопе довольно обыденное дело, а если учесть всякие гаджеты то и подавно.
     
     
  • 4.28, Толстый_, 17:17, 13/01/2011 [^] [ответить] [смотреть все]  
  • –13 +/
    линукс на десктопе обычное дело? мои тапочки плакали.
     
     
  • 5.61, онанем, 10:09, 14/01/2011 [^] [ответить] [смотреть все]  
  • +/
    а что такого?
     
     
  • 6.78, Анонизмус, 15:53, 16/01/2011 [^] [ответить] [смотреть все]  
  • +/
    1% - это обыденное дело?
     
  • 6.79, Толстый_, 19:44, 17/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Вам тут ниже ответили Мне кажется и одного процента даже нету, потому что гиков... весь текст скрыт [показать]
     
     
  • 7.80, grayich, 15:00, 18/01/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Я знаю достаточно около 15 людей уровня продвинутый пользователь которые поль... весь текст скрыт [показать]
     
  • 2.9, Alex, 14:34, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вы так говорите, будто для сервера отзывчивость не нужна...
     
     
  • 3.11, gaga, 14:54, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Нужна, конечно Кстати, никто не в курсе, как запретить вытеснять страницы прило... весь текст скрыт [показать]
     
     
  • 4.15, онано, 15:32, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Ага, и получить отсутствие дискового кэша и продолжительный выгруз в свуп, если ... весь текст скрыт [показать]
     
     
  • 5.20, gaga, 15:54, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Я тоже думал над этим, прочитал несколько срачей разработчиков по этому поводу и... весь текст скрыт [показать]
     
     
  • 6.25, anthonio, 16:47, 13/01/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    а не пробовали не монтировать swap? Тоже интересно чем дело закончится. :)
     
     
  • 7.55, gaga, 23:48, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Пробовал, но у меня всего 1 Гб памяти, иногда очень редко ее действительно не х... весь текст скрыт [показать]
     
  • 6.26, онано, 17:00, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Нихт В том-то вся и суть ... весь текст скрыт [показать]
     
  • 6.27, онано, 17:09, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Видимо, что-то точно не свободно, особенно ежель 1-2 минуты Диск Ну да, теп... весь текст скрыт [показать]
     
  • 6.49, Michael Shigorin, 20:36, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Практически 1 1 напоминает описание дёрганья мышкой под AIX лет десять тому ... весь текст скрыт [показать]
     
     
  • 7.56, gaga, 23:53, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Так о том и речь, что может быть при некоторых условиях это и правильно хотя я ... весь текст скрыт [показать]
     
  • 6.81, Alexander Sashnov, 16:09, 18/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Ubuntu 10 04 i386, 1 Gb RAM, Gnome, transmission Swap подключен и не использует... весь текст скрыт [показать]
     
  • 4.58, pavlinux, 02:26, 14/01/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    code include sys resource h struct rlimit limit limit rlim_cur ... весь текст скрыт [показать]
     
  • 2.48, pkunk, 20:17, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да и раньше было:
    http://thermal.cnde.iastate.edu/~sdh4/verynice/
     
     
  • 3.63, онано, 14:36, 14/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Спасибо Действительно очень похоже на сабж Вот еще нашел в репах debian - reni... весь текст скрыт [показать]
     
     
  • 4.64, онано, 14:38, 14/01/2011 [^] [ответить] [смотреть все]  
  • +/
    *reniced
     
  • 2.71, Zenitur, 16:48, 14/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Отзывчивость десктопа в Linux отличная без всяких патчей Во всяком случае по ср... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, тоже Аноним, 14:18, 13/01/2011 [ответить] [смотреть все]  
  • –7 +/
    Да, скрипты на Lua для пользователей - пара пустяков И вообще, зачем на дескт... весь текст скрыт [показать]
     
     
  • 2.12, Lain_13, 14:55, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Я знаю что такое язык программирования состоящий исключительно из GUI в котором ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.22, crunch, 16:07, 13/01/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    HiAsm?
     
  • 3.70, JL2001, 16:20, 14/01/2011 [^] [ответить] [смотреть все]  
  • +/
    дайте пощупать, хочу ощутить на себе... весь текст скрыт [показать]
     
     
  • 4.75, Damon_, 19:54, 14/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Не уверен, что речь о LabVIEW, но, вроде, достаточно визуальная фиговина http ... весь текст скрыт [показать]
     
     
  • 5.76, JL2001, 00:53, 15/01/2011 [^] [ответить] [смотреть все]  
  • +/
    спасибо, даже если не оно - пощупать мышкой там есть чего... весь текст скрыт [показать]
     
  • 2.18, онано, 15:40, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Это прежде всего для дистрописателей и прочих разработчиков Сходи по ссылке - т... весь текст скрыт [показать] [показать ветку]
     
  • 1.6, СуперАноним, 14:22, 13/01/2011 [ответить] [смотреть все]  
  • –3 +/
    Питонисты вполне справедливо возмутятся, почему правила задаются не на Python, п... весь текст скрыт [показать]
     
     
  • 2.8, Аноним, 14:34, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    json же!
     
  • 2.13, nil, 15:21, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    чтобы возмущались все и одинаково, ага.
     
  • 2.24, rshadow, 16:27, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    сделать одинаково плохо - не выход
     
  • 2.33, dq0s4y71, 18:07, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Lua, в отличие от жирных Питона и Перла, в скомпилированном виде больше 180К ник... весь текст скрыт [показать] [показать ветку]
     
  • 1.14, Аноним, 15:28, 13/01/2011 [ответить] [смотреть все]  
  • +2 +/
    Это же продолжение Марлезонского балета известного LKML-срача 200 строк в ядре ... весь текст скрыт [показать]
     
     
  • 2.16, онано, 15:34, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >С нетерпением ждем реакции Линуса.

    :D

     
  • 1.17, онано, 15:38, 13/01/2011 [ответить] [смотреть все]  
  • +/
    Посмотрел. Думаю, будет жить.
     
  • 1.29, Кракен, 17:18, 13/01/2011 [ответить] [смотреть все]  
  • +/
    Странная тенденция. Все становится слишком сложно - демон через сигрупс на основании нетлинк и тд... А ведь разделение ресурсов - одна из немногих основных функций ядра в теории. Почему в линуксе выстраивают вот такие вот конструкции для того, что другие системы могут просто так? Нелюбимый мной макос, вполне нормально себя ведет при высокой фоновой загрузке, например.
     
     
  • 2.31, Аноним, 17:25, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Ядро не имеет никакого понятия о сессиях Оно не знает ничего про гуй с его вирт... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.32, Кракен, 18:03, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Зачем ему все это знать? Просто делить поравну.
     
     
  • 4.36, онано, 18:12, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    > Зачем ему все это знать? Просто делить поравну.

    Толстовато.


     
     
  • 5.42, Кракен, 18:55, 13/01/2011 [^] [ответить] [смотреть все]  
  • –1 +/
    > Толстовато.

    Пойдет. :)


     
  • 4.37, dq0s4y71, 18:13, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Ага, отобрать все и поделить В результате при перекодировании фильма ffmpeg... весь текст скрыт [показать]
     
     
  • 5.38, Кракен, 18:23, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Почему Невозможно будет какраз в случае, если ффмпегу будет отдано почти все пр... весь текст скрыт [показать]
     
     
  • 6.39, dq0s4y71, 18:34, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Вот если делить все поровну, то плеер как раз не будет получать свой процент _га... весь текст скрыт [показать]
     
     
  • 7.41, Кракен, 18:54, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Очевидно, что делится среди тех, кому надо Да, задача не тривиальная, но то для... весь текст скрыт [показать]
     
  • 6.77, giperon, 09:22, 15/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Что ж это за плеер такой которому нужно 25%?
     
  • 4.69, DFX, 15:03, 14/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Windows does not have better scheduling at all The problem with the linux sche... весь текст скрыт [показать]
     
  • 1.30, Анонимно, 17:24, 13/01/2011 [ответить] [смотреть все]  
  • +/
    Не думаю что сработает. Одно и тоже гуи приложение может как интенсивно графику рисовать, так и декодировать, кэшировать или ещё что-нибудь. Так же скрипты луа в демоне - плохая идея. Лучше бы иметь хорошую документацию, и уже на уровне дистрибутива предоставлять статические типовые установки.
     
     
  • 2.35, онано, 18:08, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вполне решаемо, например, с помощью wm Не осилил Честно ... весь текст скрыт [показать] [показать ветку]
     
  • 1.34, User294, 18:07, 13/01/2011 [ответить] [смотреть все]  
  • +/
    > сравним c 200-строчным патчем

    А может тогда хватит 200 строчного патча? А то скрипты на Lua и эвристика для отзывчивости системы - это уже какой-то злостный оверкилл. Может еще пользователя заодно эвристикой следует заменить? :)

     
     
  • 2.40, Аноним, 18:52, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Уже давно так постепенно и происходит
     
  • 2.43, Crazy Alex, 19:10, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Как раз нормально Иначе получаем забитые гвоздями правила А так - имеем гибкую... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.52, User294, 23:00, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    А кому она нужна, эта гибкая механика Полутора землекопам Юзеры ни в зуб ногой... весь текст скрыт [показать]
     
  • 2.44, Arcturus, 19:14, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Отзывчивость относится к удобству использования юзабилити и поэтому однозначно... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.54, User294, 23:05, 13/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Отзывчивость относится к качеству работы системы Хорошая операционка не должна ... весь текст скрыт [показать]
     
     
  • 4.57, Arcturus, 00:14, 14/01/2011 [^] [ответить] [смотреть все]  
  • +1 +/
    Вы смешиваете, имхо, понятия ОС и ядро ОС - ядро должно иметь возможность перер... весь текст скрыт [показать]
     
  • 1.45, онано, 19:38, 13/01/2011 [ответить] [смотреть все]  
  • +/
    "евристика" lua-конфигов

    ...

    local MediaPlayer = {
      "vlc",
      "xine",
      "mplayer.*",
      "dragon",
      "totem",
      "kplayer",
      -- audio players
      "amarok",
      "parole",
      "listen",
      "rhythmbox",
      "exaile",
    }

    ...

     
     
  • 2.47, dq0s4y71, 19:59, 13/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Ты бы вообще оставил здесь только одну строчку из того скрипта Тогда сомнений в... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.66, онано, 14:45, 14/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Это было адресовано тем, кого так страшат lua скрипты На счет наличия эвристиче... весь текст скрыт [показать]
     
  • 1.46, онано, 19:40, 13/01/2011 [ответить] [смотреть все]  
  • –1 +/
    Фаг, тебе не повезло, значит, mpd будет "икать". :D

     
  • 1.50, Горлов, 22:26, 13/01/2011 [ответить] [смотреть все]  
  • +/
    >>** INFO: mount cgroups: /bin/mount -t cgroup -o blkio none /dev/cgroup/io/
    >>mount: специальное устройство none не существует

    Это нормально? ;-)

     
  • 1.53, deadless, 23:04, 13/01/2011 [ответить] [смотреть все]  
  • +/
    Я местами тащусь с линукса, честно :) потом ведь еще изобретут кучу вареза для автоматической генерации конфигов.

    Но интересно, так как мой десктоп не линукс, такие чудеса на виражах мне неизвестны, но кажется user294 писал что cgroups решают.. так выходит чо, не решают? Выходит еще демон нужен с конфигурятором?..

    Иногда так почитаешь user294 да поставишь себе в очередной раз на ноут линукса, поиграешься, да потом наткнешься на какойнить прикол типа кривизны со звуком, так и забьешь на это дело. Щас вот бубунта стоит 10.10 редакция для нетбуков, вроде ничо, хотя в первый раз после загрузки наглухо повисла, пришлось повером ребутать..

     
     
  • 2.67, онано, 14:47, 14/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Казалось бы, а при чем тут юзер Ваше дело - ждать следующей версии бубунту, ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.72, Zenitur, 16:50, 14/01/2011 [^] [ответить] [смотреть все]  
  • +/
    Кто-то постоянно с разных ников ему гадости пишет вот уже месяца два Но хоть уб... весь текст скрыт [показать]
     
  • 1.59, тот_самый, 02:36, 14/01/2011 [ответить] [смотреть все]  
  • +/
    я вон на BFS сижу, и ничо так...
    генту бывает мержишь с LA=11 или иногда даже 12 а амарок спокойно себе играет и сёрфишь тоже легко по инету.
     
     
  • 2.73, Zenitur, 16:54, 14/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > я вон на BFS сижу, и ничо так...
    > генту бывает мержишь с LA=11 или иногда даже 12 а амарок спокойно
    > себе играет и сёрфишь тоже легко по инету.

    Суся. 2006 год. Запускаю амарок одновременно с компиляцией программы, игрой в Wine, и фаерфоксом 2 версии. Амарок стартует. Ничего не тормозит, кроме игры в Wine совсем чуть-чуть (нативная бы не тормозила). Через 40 секунд амарок стартовал, и уже запущенный амарок тоже не тормозил. От Windows такого не дождёшься. Медиаплеер стартует 3 секунды, а за это время вся система едва живая. После появления двухъядерного процессора эта проблема забыта, как мне кажется, навсегда.
    P.S. Сёрфить по инету - с этим и второй пентиум с MMX справится. Если не в 20 окон и emerge не запущен.

     
  • 1.60, Слакварявод, 09:19, 14/01/2011 [ответить] [смотреть все]  
  • +/
    /usr/src/poelzi-ulatencyd-85a2307/src/ulatencyd.c: В функции ‘avoid_oom_killer’:                                                                            
    /usr/src/poelzi-ulatencyd-85a2307/src/ulatencyd.c:119: ошибка: ‘O_NOFOLLOW’ не описан (первое использование в этой функции)
     
     
  • 2.62, pavlinux, 14:32, 14/01/2011 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    #define O_NOFOLLOW 00400000
     
  • 1.65, gegMOPO4, 14:40, 14/01/2011 [ответить] [смотреть все]  
  • +/
    Интересно, как оно будет работать с systemd, использующим cgroups для своих целей?
     
  • 1.68, pavlinux, 14:59, 14/01/2011 [ответить] [смотреть все]  
  • +/
    ulatencyd (28670): /proc/28670/oom_adj is deprecated, please use /proc/28670/oom_score_adj instead.

    Гы :)

     

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


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