LINUX.ORG.RU

высокоприоритетная консоль для gui


0

1

Задался целью заиметь высокоприоритетную консоль, в которую можно было бы спокойно переключиться при очень высокой загрузке CPU и IO.

В рамках тестирования поставил guake и назначил ему наивысшие приоритеты через renice и ionice. Запустил задачу, жрущую IO. Консоль вылезла раньше, чем закончилась задача, но этого мало. Полагаю, что подвел хоткей.

Есть ли возможность как-нибудь ускорить обработку хоткеев, не поднимая приоритет всему DE?

Есть у кого наработки в этом деле?

Может есть готовые решения?

Гугль дал одно решение, но для удаленного сервера: http://vorona.com.ua/utils/rexec/

PS: консоли, доступные по Ctrl+Alt+Fx просьба не предлагать, ибо не подходят и начинают еще больше тормозить систему

PS2: исходники guake намекают, что он использует GDK для отлова хоткея. курю дальше...

★★

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

нет таких!
если ввод-вывод повис, то как ты хочешь получить, точнее послать сигнал, терминал?
чини 12309

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

>kswapd
блин, может проще оперативки прикупить?))

но всё равно остается шанс нагрузить систему сверх меры (наплодить gui процессов), и когда начнет свопить - караул. так что хотелось бы хорошенько порязмять мозги для решения данной задачи.

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

>> блин, может проще оперативки прикупить?

Стоит попробовать.

проблема в том, что универсального средства от 12309 нету)

Это не значит, что нельзя пробовать не универсальные. Начни отсюда: http://www.linux.org.ru/wiki/en/User:shimon/12309

GotF ★★★★★
()

>ускорить обработку хоткеев, не поднимая приоритет всему DE

- Пишем демона, кот-й читает клавиатуру напрямую из /dev/input/by-path/*kbd*
- nice -20 ...
- ...
- Profit

Подводным камнем может быть то, что подсистема устройств ввода в самом ядре будет иметь слишком низкий приоритет (возможно, это глупость, разбирающиеся в ядре приветствуются).

anon_666
()
Ответ на: комментарий от GotF

>Это не значит, что нельзя пробовать не универсальные
ну, всё равно нет гарантий, что поможет. ситуации всё-таки у меня возникали разные. и kswapd, и convert, и firefox... в основном, конечно, упирается в io.
да даже если и поможет, вопрос темы всё равно будет актуален :)
спасибо за ссылку, в фак я хоть и заглядывал, но исключительно по теме.

ээх, вспоминаю я былые времена под softice-ом)

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

>Пишем демона
интересно!
я подумывал о каком-нибудь драйвере, который бы вклинивался во фрейм-буфер.

подсистема устройств ввода в самом ядре будет иметь слишком низкий приоритет

резонно. хотя прерывания с клавиатуры должны обрабатываться сразу, они поступают сначала в буфер. а его уже ядро раскладывает процессам чуть после.
надо глянуть исходники ядра, что он выдает в /dev/input/, если нужный буфер, то демон с -20 должен помочь.

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

>они поступают сначала в буфер
они - скан-коды клавиш)

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

да, но сигналы тоже будут ждать

xydo ★★
() автор топика

Именно для графической консоли задача практически неразрешима (ну и по крайней мере придется поднимать приоритет X-серверу).

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

сделал то, чего хотел избежать) поднял приоритет для Xorg и nautilus (без него, оказывается, никак). реакция стала практически моментальная)
однако, как это отразится на всех остальных процесса предсказывать боюсь) что-ж, поработаю, посмотрим, какой uptime на этот раз набежит.

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

Тем, кому вдруг интересно:
аптайм 18 дней. (т.е. до сих пор не перезагружался)
система не глючила, но и во времена очень большой нагрузки консоль выскакивала по 2-5 секунд. тем не менее считаю это хорошим результатом.
но теперь уж точно буду фиксить 12309.

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

>там просто используется другой планировщик

Там приоритет Xorg'у поднят. Читай код, а не только лор.

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

там SCHED_ISO
вот и всё
а по поводу приоритета - достаточно моих костылей

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

о, манульщик пожаловал) (без обид только) встречный вопрос: что здесь можно еще что-то улучшить в плане приоритетов?

if [[ `ps h -p $PPID -o cmd` == guake* ]]
then
sudo renice -20 $$ $PPID `pidof Xorg nautilus`
sudo ionice -c 1 -n 0 -p $$ $PPID `pidof Xorg nautilus`
fi

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

как вариант вижу только сделать все процессы unswappable и поменять их scheduling policy.
в любом случае то, для чего всё это затевалось, всё не работает.
надо фиксить 12309. без него точно не заработает. и памяти купить))

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

>Пишем демона, кот-й читает клавиатуру напрямую из /dev/input/by-path/*kbd*
Ты про actkbd?

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