Proces s _uplne_ idle prioritou

Milan Kerslager milan.kerslager na spsselib.hiedu.cz
Pondělí Červen 11 17:07:54 CEST 2001


On Mon, 11 Jun 2001, Lubos Lunak wrote:

> Jenze jak uz jsem napsal v puvodnim dotazu, problem je, ze i s nice 20
> ten proces bude okupovat procesor alespon trochu. Jestli bezi
> distributed.net klient s nice 20, normalni procesy maji standardne
> nice 0 a ja chci pustit kompilaci na pozadi, tak bud mi bude slusne
> ubirat cas pro ty normalni procesy ( kdyz tu kompilaci pustim s nice
> blize k 0 ), nebo ten distributed.net klient te kompilaci bude
> znatelne ukrajovat z prostredku ( to kdyz bude ta kompilace bude s
> nice blize k 20 ). Navic tak jako tak proces s nice 20 vs 1 proces s
> nice 0 dostava porad ten proces s nice 20 nekolik procent CPU.

Na nasem skolnim serveru si studenti spousteli rc5 a seti klienty. Kdyz
byl nastaveny nice na maximum (tj. na maximalni hodnotu nice, tj. 19), tak
ostatni uzivatele prakticky nevedeli, ze neco takoveho bezi.

Nemyslim si, ze se nachazite v tak specialnim postaveni, ze byste
potreboval (realne) vice (tj. nemyslim si, ze by Vam nice nestacilo). V
kazdem pripade si muzete ten distributed.net pozastavit (kill -19 <PID>)
a pak ho zase rozebehnout (kill -18 <PID>), tj. pouzit signaly STOP a CONT
(treba si na to napsat skript).

Take dost dobre nechapu, co teda vlastne chcete. Pokud by (teoreticky) mel
proces X (distributed.net klient) vuzivat *jen* iddle time, pak jakykoliv
dalsi proces (treba kompilace), ktery by mel take "bastit" jen iddle time
CPU, musi dostat 50% iddle z celkoveho iddle. Zda se mi totiz, ze Vy byste
chtel, aby distributed.net klient mel "super iddle" flag, jenze tento
pozadavek povede k tomu, ze jakmile se v systemu objevi jakykoliv proces
vyuzivajici nice, tak se distributed.net totalne zastavi (a to byste asi
nechtel - uvazujte, ze jakykoliv uzivatel (proces) by spustenim nejakeho
procesu dosahl toho, ze mate jednoduse smulu a zminena uloha nikdy
nedobehne, tj. velmi jednoduchy DoS).

Pokud chcete rozdelit cas CPU nejak jinak, pouzijte skalu 19 stupnu nice.

Navic - jak tady nekdo uz zminil - neni dobre, pokud by se proces X uplne
odstavil, protoze by se pak mohly retezove zastavit vsechny ostatni
procesy (Unix je viceulohovy a viceuzivatelsky system, takze uvahy typu
"ja chci" se musi posuzovat v kontextu tech ostatnich uzivatelu/procesu).

> Osobne moc nechapu, proc takovahle z meho pohledu dost primitivni vec
> nejde, no ale kdyz nejde, tak tedy nejde :(.

Protoze k tomu jsou dobre duvody a mate k dispozici nastroje, kterymi lepe
dosahnete pozadovaneho efektu. Navrhovany princim mi totiz (viz vyse)
docela dost logicky skripe (co by se melo jako stat, kdyz by byly v
systemu 2 nebo vice "super iddle" ulohy???).

-- 
                        Milan Kerslager
                        E-mail: milan.kerslager na spsselib.hiedu.cz
                        WWW:    http://www.spsselib.hiedu.cz/~kerslage/



Další informace o konferenci Linux