[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: