Re: Динамически включать-выключать CPU
On 2011.09.10 at 07:38:37 +0100, Mikhail Ramendik wrote:
> 2011/9/10 Victor Wagner <vitus@wagner.pp.ru>:
>
> > Поэтому вполне сработает такая конструкция
> >
> > LIST=`cat /dev/cpuset/tasks`
> > for pid in $LIST; do
> > echo $pid > /dev/cpyset/syscpuset/tasks
> > done
>
> Спасибо. Вот как раз того, что шелловский for умеет итерировать по
> строке, разделяя newlines, я и не знал.
В данном случае там не newlines, а whitespace. newlines съедены
незакавыченной подстановкой.
> (Это подойдёт - там просто числа, разделённые newline).
>
> >> Если шеллом можно сделать _это_, может им можно и конфиг разобрать? В
> >
> > Да, естественно.
> >
> > Я очень часто делаю конфиги скриптами на том же языке, что и основной
> > продукт, и промом просто делаю им source/require и т.д.
>
> Всё что тут надо конфигурировать, по максимуму:
>
> CPUSETNAME=name
> CPUS=cpus
> MEMS=mems
> MOVE_KERNEL_PROCESSES=[true|false]
Ну вот ровно такую конструцкию и
зачитывать в скрипт посредством команды "точка"
. /etc/cpuhack.cfg
Кстати, именно так устроены все конфиги в /etc/default.
Они читаются init-скриптами именно таким способом.
Дальше - просто не забывать подставить где надо
echo something > /dev/cpuset/${CPUSETNAME}/tasks
При этом крайне рекомендуется перед считыванием конфига выставить всем
переменным умолчательные значения, а после - произвести некоторые sanity
checks. Например, проверить что CPUSETNAME не пусто.
> Я просто не верю, что готовое решение для логгинга userland процессов
> до RW монтирования /var/log отсутствует. Ну сам-то /sbin/init должен
> куда-то сообщить об ошибке в /etc/inittab .
Они все на консоль пишут.
Reply to: