LINUX.ORG.RU
ФорумTalks

[отклик]scripts


0

1

подумав над скриптом autogroup
подумав на баш-костылями, использующие cgroups
наваял 2 скрипта

#!/bin/bash

for user in `grep '/home/' /etc/passwd|grep -v 'nologin'|cut -d: -f1`;
do
if [[ -d `grep $user /etc/passwd|grep -v 'nologin'|cut -d: -f6` ]]; then
export X_USER=`echo $X_USER $user|tr " " ","`;
fi
done

while [[ `pidof X` ]]
do
sleep 2 && ionice -n 7 -t -c 3 -p `pgrep -u root -v X` &>/dev/null || exit 1
sleep 2 && ionice -n 0 -t -c 1 -p `pgrep -u $X_USER && pidof X` &>/dev/null || exit 1
sleep 2 && renice -n -19 -p `pgrep -u $X_USER && pidof X ` &>/dev/null || exit 1
sleep 2 && renice -n 20 -p `pidof kswapd0` &>/dev/null || exit 1
exit 0
done
+
#!/bin/bash
PROGRAMMS="ktorrent eiskaltdcpp-qt eiskaltdcpp-gtk rtorrent deluged transmission-daemon"

while [[ `pidof X` ]]
do
for prog in `echo $PROGRAMMS|tr " " "\n"`;
do
sleep 2 && renice -n 0 -p `pidof $prog` &>/dev/null
sleep 2 && ionice -n 4 -t -c 0 -p `pidof $prog` &>/dev/null
done
done
запускаю из /etc/conf.d/local (gentoo, да)
/home/megabaks/scripts/renice/test &
/home/megabaks/scripts/renice/renice &
как видно приоритеты расставляются в зависимости от юзера, за некоторыми исключениями (а раз 99% софта хомячка иксовый - логично) .
профиты:
исчез баг в кедах+растр при завершении сеанса(тот самый сегфолт)
по цЫферкам qtperf профит - ускорение на ~30% в отрисовке морды
даже при дикой нагрузке на i/o морда по-прежнему откликается на раз
совместимы с bfs, в отличии от autogroup
второй скрипт для того, что бы всякие торренты и DC клиенты не портили малину
первый скрипт отрабатывает и завершается - все процессы, запущенные после его работы и завершения, получают соответствующие права
второй крутится бесконечно

ругайте, пока я пьян и добр %)
З.Ы. если не туда запостил - перенесите, плз

★★★★

А по поводу самого скрипта никто высказаться не хочет? Интересно же, но на себе проверять стремно )))

vadik ★★ ()

Приятного похмелья!

Zhbert ★★★★★ ()

вещества всех интересуют гораздо больше, чем...
огорчаете меня, дамы и господа...

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

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

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

попробуй...

это не долго

почему-то не долго прочитал как не больно)))

Ладно, уболтал, ща бум пробовать.

vadik ★★ ()

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

Теперь вопросы. Как ты написал

первый скрипт отрабатывает и завершается - все процессы, запущенные после его работы и завершения, получают соответствующие права

Значит ли это что приложениям запущенным после отработки скрипта приоритеты назначатся не будут? Если да, то в чем смысл и откуда возьмется оптимизация?

vadik ★★ ()

Попробовал - на загрузку CPU отлично влияет в плане интерактивности.
Но вот I/O все равно напрочь вешает все..

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

>Значит ли это что приложениям запущенным после отработки скрипта приоритеты назначатся не будут?
нет!
приоритеты будут такими же, как будто ты запускаешь софт с теми же приоритетами, что и в скрипте
т.е. например - ты запустил prog1, затем скрипт - скрипт отработал и завершился
запускаешь prog2 и у неё будут такие же приоритеты, как и у prog1
думаю так понятней? :)

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

Теперь понятней, спс.

Тогда, на всякий случай, опишу как делал в своем арче. Твой скрипт №1 добавил в /etc/rc.local (в дополнение к методу указанному в моем сообщении выше).

Перезагрузился.

Нигде не накосячил?

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

да вроде всё так :)
только точно запустил?
если как я просто написать полнуй путь, то надо скрипт сделать исполняемым
иначе
/bin/bash /а/тут/полны/путь/до/скрипта

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

и да - профит может потеряться
т.к. мой и описанный тобой способ по-разному разбивают процессы на группы и соответственно по-разному рулят приоритетами
поэтому лучше всё таки что-то одно

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

Щас останется только один )).

Далеко не уходи.

vadik ★★ ()

Не пойму, толи гномовский системный монитор тупит, толи я. В top и htop колонка PR приоритеты показывает? У меня там везде 20 стоит, а гном нули показывает.

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

ну-ну - только дело в том что у меня отрублен был своп собирается 4 пакета по 3 потока каждый
хромой и я в кедах
т.е. всё это вкуче - бомба
а вот сейчас подключив своп - так пофиг )
ну вот - на 400 метров в свопе и ничего :)
памяти всего 2 гига

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

Скрипт в файле /etc/rc.local (но тут, думаю, нужно месных арчеводов подключать). Если в скрипте допустить ошибку, то в процессе загрузки системы выдается сообщение с указанием номера строчки с ошибкой. Так что думаю стартует и отрабатывает нормально.

Только что попробовал dd if=/dev/zero of=test bs=1G count=10, так вот о каких тормозах пишут люди! При обычной работе с компом ничего подобного никогда не наблюдал, наутилус только около 10 сек запускается, хотя при нормальных условиях - чуть больше секунды. Чипсет также интеловский. Но тут твой скрипт врядли поможет.

В общем за темой буду следить, а пока баиньки. Удачи.

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

кстати dd
если запускать от юзера то приоритет максимальный
а если через su|sudo то ...наследуется приоритет родителя ^_^
поэтому тест некорректен
если только во второй скрипт добавить dd...

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

KDE я не использую, на скорость отрисовки Qt не жалуюсь, BFS не нужен. Ты лучше мне скажи, как там с производительностью ядра с тем новым патчем? А то я слышал, что на одноядерных процессорах всё даже хуже.

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

у меня 2-х головый проц
про bfs ты точно не прав
а производительность...да хз - на диске процессы меньше мешают друг другу и всего делов то

megabaks ★★★★ ()
Ответ на: комментарий от devl547
desktop megabaks # dd if=/dev/zero of=/tmp/test bs=1G
^C2+0 записей считано
2+0 записей написано
скопировано 2147483648 байт (2,1 GB), 236,834 c, 9,1 MB/c

desktop megabaks # dd if=/dev/zero of=/tmp/test bs=1G
^C2+0 записей считано
2+0 записей написано
скопировано 2147483648 байт (2,1 GB), 136,034 c, 15,8 MB/c

desktop megabaks # 

догадайся где какой приоритет у dd ;)

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

>Ну своп у тебя и так на минимальном приоритете.
ну тем не менее как видишь разница почти в 2 раза
короче - второй вариант это dd с миниальным приоритетом на ввод-вывод + idle

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

я пьян

вино

пьян

вино


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

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