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