LINUX.ORG.RU

Вышел ulatencyd — демон, контролирующий параметры отзывчивости системы

 , , ,


0

1

Daniel Poelzleithner представил демона, автоматически изменяющего параметры планировщика процессов, а также некоторых других вещей, отвечающих за отзывчивость системы.

Демон пока не готов для повседневного использования, но успешное начало уже положено. Так, например, при выполнении «make -j 40» на двухъядерной машине автор демона смог без проблем смотреть HD-фильм.

Архитектура демона выглядит так.

Обычно, правила, используемые демоном, всего лишь помечают процессы некоторыми флагами, значимыми для планировщика при принятии решений об установке параметров процессов. В отдельных случаях может использоваться принудительное планирование.

Над демоном ещё предстоит хорошо поработать, чтобы он вёл себя корректно при бесконечном своппинге или форк-бомбах, например. Также, хотя и была произведена оптимизация правил, написанных на Lua, нагрузка на демон при большом количестве порождаемых процессов всё ещё высока.

>>> Исходный код

★★★★★

Последнее исправление: post-factum (всего исправлений: 4)

что я не пойму все ударились биться об эту отзывчивость? нормально все отзывается итак. ЧЯДНТ?

rsync ★★
()
Ответ на: комментарий от anonymous

>сам будешь под каждый новый плеер переписывать планировщик. да?

Очень интересно. Чем же по-твоему должен планировщик заниматься?

ttnl ★★★★★
()
Ответ на: комментарий от anonymous

Не пытаешься делать make -j40

но могу. осталось решить один вопрос: зачем?

не пользуешься DC клиентами

только торренты

rsync ★★
()
Ответ на: комментарий от post-factum

>Это не то, что имелось в виду, ИМХО.

ИМХО как раз то, просто где-то слегка, а где-то с другой стороны заходят, решать поставленные задачи какими-то другими методами в принципе можно (назло M$/здравому смыслу/итд), только это уже будет через задницу

frame ★★★
()
Ответ на: комментарий от tommy

где при этом будет Линус? наверное с RH.

А Линусу ведь понравились изменения в планировщики процессов. Даже собрался добавить этот патч в .28.

Lighting ★★★★★
()
Ответ на: комментарий от atrus

может быть неудачное ядро с неудачным планировщиком по конкретную сборку 32/64 бит. я вот грязно ругался на то что творилось у меня под Lenny, особенно под 64 бит. а с 2.6.32 всё стало нормально и мой слабенький (специально купленный потому что энергоэффективный) X2 4850e очень радует (с DC++, utorrent в Wine и прочимим экстремальными p2p) в системе с 8-ю хардами. а vdpau тут интегрированное на плате показывает FullHD и никаких затыков. но пришлось для dvpau отключать снижание частоты.

tommy ★★★★★
()
Ответ на: комментарий от HTaeD

Из плюсов высокая скорость загрузки. Действительно заметная даже не только невооружённым глазом, но и глазом замыленным и замутнённым. Из минусов (которых сейчас много) — мало скриптов запуска (это решается методом бзд-стайл) и какие-то непонятные проблемы с lvm. Точнее, в моём случае с lvm+autofs. Приходится после перезагрузки дополнительно рестартовать каждый. Это тоже не трудно и решается тем же бзд-стайл методом.

Lumi ★★★★★
()

>Daniel Poelzleithner представил демона

Сотона не иначе.

Хотел уже было голословно сказать, что у меня и сейчас при make -j40 все работает нормально, однако я ошибался даже курсор мыши начал рывками передвигаться.

P.S. make -j40 никогда не запускал и не буду. В повседневной работе проблем нет, make -j3 не ощущается совсем, но вроде новость позитивная.

partyzan ★★★
()
Ответ на: комментарий от post-factum

> Это не костыль, а правильный подход к решению проблемы.

программа, предназначенная, для более корректной работы другой программы - это не костыль?

psionik
()
Ответ на: комментарий от rsync

> что я не пойму все ударились биться об эту отзывчивость? нормально все отзывается итак. ЧЯДНТ?

ХЗ 12307 тоже не у всех проявляется.

У меня к примеру при фоновом копировании мыша дергается. Подобная бага была в 3.11, в 95 уже меньше... Linux до сих по не вылечил =(

VoDA ★★
()

Я вот одно не понимаю, а что nice'ить процессы ныне уже не модно? Я вот запускал с низким приоритетом до 500 активно работающих процессов на своем дохленьком лаптопе. Или важно еще наличие дисковой активности? Тогда ionice в придачу.

annoynimous ★★★★★
()
Ответ на: комментарий от Lumi

Спасибо.
Надо будет посмотреть на досуге.

HTaeD ★★★★
()
Ответ на: комментарий от annoynimous

Так то же ты руками запускал, и головой перед этим думал. А здесь всё на автомате и из коробки. Хомячки ликуют.

Lumi ★★★★★
()
Ответ на: комментарий от post-factum

> С такими утверждениями

С какми «такими»? Ты можешь эффективно реализовать контейнеры вне ядра? Да ты монстр.

Для справки: именно контейнеры используются тем «200-строчным патчем», и они же используются скриптом, который заменяет этот патч.

можно и графику в ядро засунуть…

Если ты пропустил этот момент - ее уже засунули (и да, графика != оконная система).

tailgunner ★★★★★
()
Ответ на: комментарий от post-factum

Блин, а зачем? В задаче, запускаемой человеком, человек лучше всех может знать характер нагрузки, создаваемой на систему. А для всех этих демонов всегда можно найти use case, когда он делает только хуже. И черт возьми, кто-нибудь этот case найдет и запостит на ЛОР!

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

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

А менять харктеристики динамически (когда нагрузка меняется динамически) тоже должен человек?

tailgunner ★★★★★
()
Ответ на: комментарий от Lennier

Изгоняю демона по снапшоту etc. Дорого. Со спецэффектами.

anonymous
()
Ответ на: комментарий от tailgunner

> А менять харктеристики динамически (когда нагрузка меняется динамически) тоже должен человек?

А когда оно такое требуется? Насколько мне известно, все планирование основывается на значениях статических приоритетов. Да, я знаю про динамическое изменение приоритетов планировщиком, но оно ведется на другом уровне с другой доступной планировщику информацией.

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

> Я вот запускал с низким приоритетом до 500 активно работающих процессов на своем дохленьком лаптопе. Или важно еще наличие дисковой активности? Тогда ionice в придачу.

анон,прокатит если на ежеке от ASUS стоит SSD память но работает еле-еле?

psionik
()
Ответ на: комментарий от annoynimous

> Насколько мне известно, все планирование основывается на значениях статических приоритетов.

Вообще-то нет. При SCHED_OTHER рассчитываются динамические поправки, довольно широкие.

Да, я знаю про динамическое изменение приоритетов планировщиком, но оно ведется на другом уровне с другой доступной планировщику информацией.

С другой стороны, у юзерспейса тоже есть информация, которой нет у планировщика. Правда, ваять демона, играющего настройками планировщика, как-то глупо - есть же контейнеры.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

KMS != графика, если ты об этом.

Кстати, вот не пойму, при чём тут контейнеры. Имелись в виду контрольные группы? Если да, то управление ими должно быть в юзерспейсе, ибо там пользовательские программы, поведение которых должно влиять на эти самые контрольные группы для эффективного планирования.

post-factum ★★★★★
() автор топика
Ответ на: комментарий от post-factum

Хорошо. Но вроде уже есть systemd, который может и пользовательские процессы распихать по группам, к чему еще один демон?

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

Во-первых, это два РАЗНЫХ демона, и непонятно, почему systemd вообзе этим занимается. Но это претензия к systemd как к комбайну.

Во-вторых, в ulatencyd используются не только контрольные группы.

post-factum ★★★★★
() автор топика
Ответ на: комментарий от post-factum

s/вообзе/вообще

[offtop]Куда я спешу?[/offtop]

post-factum ★★★★★
() автор топика

> Так, например, при выполнении «make -j 40» на двухъядерной машине автор демона смог без проблем смотреть HD-фильм.
ШТО?! Прям не вериться.
И вообще ящитаю, если этот демон развить как следует, то он вполне может быть киллер-фичей линуксов.

doctorx ★★★★
()
Ответ на: комментарий от post-factum

> KMS != графика, если ты об этом.

Я о драйверах видеокарт в ядре, от фреймбуфера до DRI. Чем же они не графика?

tailgunner ★★★★★
()

Добавьте тег «костыли»

Quasar ★★★★★
()
Ответ на: комментарий от tailgunner

Сарказм был в сторону иксов, ну да ладно.

post-factum ★★★★★
() автор топика
Ответ на: комментарий от annoynimous

>Я вот одно не понимаю, а что nice'ить процессы ныне уже не модно? Я вот запускал с низким приоритетом до 500 активно работающих процессов на своем дохленьком лаптопе. Или важно еще наличие дисковой активности? Тогда ionice в придачу.

На проблемных системах rsync с ionice -c 3 все так же бодро фризит процессы, осуществляющие ввод-вывод на устройство. Не поверил бы, если бы сам не увидел. Сабжевый демон потенциально сделает жизнь приятнее тем, у кого и так все хорошо, имхо никаких проблем он не решит.

aidaho ★★★★★
()
Ответ на: комментарий от aidaho

> На проблемных системах rsync с ionice -c 3 все так же бодро фризит процессы, осуществляющие ввод-вывод на устройство.

Да, я тоже слышал и видел такое. Но это никаким юзерспейсным демоном не поправишь, только замаскируешь. И в целях скорейшего исправления, маскировать как раз-таки не стоит.

annoynimous ★★★★★
()
Ответ на: комментарий от post-factum

> почему systemd вообще этим занимается.

Может потому, что он запускает всякие tty и [gkx]dm, как раз и начинающие то, что считается «пользовательской сессией»?

annoynimous ★★★★★
()
Ответ на: комментарий от post-factum

>Это не костыль, а правильный подход к решению проблемы.
Если я правильно понимал до этого суть проблемы - она в ядре. Делать юзерспейсного демона, который будет следить за процессами и подсказывать ядру что делать - имхо уж лучше тогда в ядре сделать соответствующую подсистему, хотя тоже по сути костыль.
А вообще удивительно, как серьезные компании, заинтересованные в линуксе не прошерстили исходники ядра на предмет багов, связанных с io.

Да, я мало слежу за темой, а что с патчем не так?

unikoid ★★★
()

Все равно против 12309 не поможет :-)

vsemprivet
()
Ответ на: комментарий от annoynimous

В пределах одной сессии процессы могут быть совершенно разными.

post-factum ★★★★★
() автор топика

Это никому не поможет. На десктопе надо чтобы не тормозил флеш на фулскрин и файрфокс запускался хотя бы меньше 10 секунд :)

Alve ★★★★★
()
Ответ на: комментарий от unikoid

Образно говоря, он лишён интеллекта.

post-factum ★★★★★
() автор топика
Ответ на: комментарий от unikoid

Костыли, как они есть.


Один чел давным давно мне так рассказывал про юникcвэй:
«UNIX - это стройная система костылей и подпорок»

anonizmus
()
Ответ на: комментарий от Alve

На десктопе надо чтобы не тормозил флеш на фулскрин


Он не тормозит. (ubuntu 64/amd2ghz/1920x1080/nvidia)
Файрфокс не нужен. Хром рулит и педалит.

anonizmus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.